-
Notifications
You must be signed in to change notification settings - Fork 77
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added a proof-checking interface to the Cadical SAT solver
(https://github.com/arminbiere/cadical). This is highly analogous to the existing interfaces to Minisat and zchaff in "Minisat/*" and uses some very similar code for CNF transformation. Among other facilities, this makes available a Cadical-powered tautology checker, with the LRAT proof produced by Cadical (it is tidied up with lrat-trim in the standard flow) checked in the HOL Light kernel. For example: # CADICAL_PROVE `(p ==> q) <=> (p <=> p /\ q)`;; val it : thm = |- p ==> q <=> p <=> p /\ q Added a proof that a polygon with all its vertices on the unit circle is closed under complex multiplication iff the vertices are the n'th complex roots of unity for some n. This is based on the discussion here, in particular the observation from Dario extending Carl Schildkraut's proof of the original problem to an equivalence: https://math.stackexchange.com/questions/4892153 Fixed a printer bug where interface maps were not reversed on printing for binders. Also made a few minor name changes in the embedded logics to avoid using "true" and "false", to make room for using those as alternative names for T and F. Made a few useful improvements to SET_TAC and SET_RULE. First of all, they now deal with conditionals at least to some extent (the previous failure to do so was a basic bug). They also use streamlined versions of certain "write away set concepts" rules such as UNIONS_GSPEC, which can be helpful preprocessing to make the eventual MESON problem easier, or even provable at all. Here are a couple of trivial examples that now work but didn't previously: SET_RULE `IMAGE (f:A->B) s = UNIONS {{f x} | x IN s}`;; SET_RULE `{a,b} DELETE (a:A) = if a = b then {} else {b}`;; Made a few tiny optimizations to basic rules like CONJUNCT1 by switching the implementation from PROVE_HYP to the underlying primitive rules DEDUCT_ANTISYM_RULE and EQ_MP. This has the advantage of skipping a check that in context we know is redundant (whether the PROVE_HYP is non-trivial in the sense that the assumption is not there to start with). Added a few new theorems (mainly in support of the polygon example above): BILINEAR_IN_AFFINE_HULL BILINEAR_IN_CONVEX_HULL FINITE_SUBGROUP_OF_SETWISE SIMPLEX_FURTHEST_LT_EXISTS as well as generalizing these two existing theorems by removing the finiteness assumption (hence perhaps making the "SIMPLEX" in the name a bit misleading): SIMPLEX_FURTHEST_LT SIMPLEX_FURTHEST_LE_EXISTS
- Loading branch information
Showing
26 changed files
with
1,077 additions
and
213 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.