-
-
Notifications
You must be signed in to change notification settings - Fork 3
Propositional Types
A propositional type is a type that is not a traditional datatype but rather asserts some other logical "property" on a term.
A corollary is a function that produces only propositional types as a return value. Corollaries are used to enrich existing terms with new type information.
let prop assert-is-sorted(x: List<i>): List::Sorted = (
... prove that the list is sorted ...
);
Rather than drafting statements directly, LSTS @auto(goal)
tries to connect a term to a goal using only corollaries.
If this is found to be difficult or impossible then auto-proof will just give up.
The LSTS source code and documentation are released under the terms of the attached permissive MIT license. This license is intended only to protect the future development of the project while otherwise allowing people to use the code and IP as they would like. Please, just be nice.