-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduction rules for builtins #13
Conversation
…nverted to STHoarePureBuiltin
…sub, mul, div intro. Generic eq intro proven.
The equality and arithmetic builtins were converted back to typed automatic proofs (i.e., using |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some changes needed but I don't need to re-review
This PR adds the introduction rules for builtins. These reside in
Lampe/Hoare/Builtins.lean
.Noteworthy changes:
STHoarePureBuiltin
abbreviation added. Builtins that are defined withnewPureBuiltin
ornewGenericPureBuiltin
can use this to simplify the definition of the rule.newPureBuiltin
constructors do not work with. As a result, the references to these builtins inSyntax.lean
are now correct and work with all possible types.EqTp
andArithTp
types. Those types define theTp
s that can be compared with==
and can accommodate the infix arithmetic operations+
,-
,/
,*
respectively.steps
tactic. Note that now we may need to show thatArithTp tp
andEqTp tp
hold (seeLampe.lean
).STHoare.lean
added that explains our interpretation of the Hoare triplets.In the proofs, I took care to not use non-terminal
simp
orsimp_all
without anonly
directive.