jonsterling / JonPRL

An proof refinement logic for computational type theory. Inspired by Nuprl. [For up-to-date development, see JonPRL's successor, RedPRL: https://github.com/redprl/sml-redprl]
http://www.jonprl.org
MIT License
109 stars 9 forks source link

Per #227

Closed vrahli closed 9 years ago

vrahli commented 9 years ago

Added per types, defined a new squash operator using per, proved that it's equivalent to the one that uses the image type, defined quotient types using per, and proved their well-formedness.

jozefg commented 9 years ago

I think there's a small bug, in tactic.sml there should be a new case of branchSubst to handle UNHIDE. Maybe?

jonsterling commented 9 years ago

@jozefg Yes, that is correct.

vrahli commented 9 years ago

Do you mean substBranch in src/syntax/tactic.sml? What's that function doing? On Sep 3, 2015 3:35 PM, "Jonathan Sterling" notifications@github.com wrote:

@jozefg https://github.com/jozefg Yes, that is correct.

— Reply to this email directly or view it on GitHub https://github.com/jonsterling/JonPRL/pull/227#issuecomment-137467831.

jozefg commented 9 years ago

@vrahli When a Match tactic gets a substitution, it uses that to push the substitution through the tactic it's supposed to run. So that has to take a substitution and ensure that it is applied to every occurrence of a variable or term in a tactic. We can't do this with abts because they're a little too simple to handle binding term variables in tactics and such.

It's pretty messy, I think I'm going to get rid of that catch-all case because it makes these bugs way too easy.

vrahli commented 9 years ago

I've added a case in substBranch and per.jonprl now imports from other files via per.cfg.

jonsterling commented 9 years ago

Excellent, thanks! I'll look through it tonight and merge. Very exciting!