Closed sankalpgambhir closed 1 year ago
The recursion theorem is getting there, but not quite done. However, the changes and theory development restricted to this branch may be holding up other stuff, so I've documented what is already there, and we can merge this.
Adding more set theory stuff. Developing ordinals and hoping to have transfinite recursion soon!
Dedicated to the two great banes of my existence:
Other technical changes:
subproof
now checks the provided statement for correctness and introduces aRestate
step if necessary to present itself correctly.lastStep
helper, which can be used to refer to the, guess what, last step. Intended use case is when steps are named just because the step following them is a two-premise tactic. This is a fairly common pattern. Example:// the above changes to val prem = have( A |- B ) by Magic // generic step to be used multiple times or mark a point in the proof // ... things happen thenHave( B |- D ) by Magic // minor step that only has to be used once have( A |- C ) by Cut(prem, lastStep)