#
2000288a |
|
02-Nov-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Fix an occurrence of augment_srw_ss to be “logged”
|
#
5f1dcdea |
|
31-Aug-2020 |
Arve Gengelbach <arve.gengelbach@it.uu.se> |
flip arguments of UNION
|
#
e63045cb |
|
31-Aug-2020 |
Arve Gengelbach <arve.gengelbach@it.uu.se> |
add UNION_DIFF_EQ to the simp set
|
#
0806025c |
|
29-Aug-2020 |
Arve Gengelbach <arve.gengelbach@it.uu.se> |
simplify `s ∪ (t DIFF s)`
|
#
43fd5a70 |
|
25-Aug-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Prove FINITE (POW s) <=> FINITE s as automatic rewrite Only had R-to-L direction previously.
|
#
bcc9fb17 |
|
25-Aug-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Add some easy automatic results about closures of SUBSET and PSUBSET Things like RTC $SUBSET = $SUBSET Also facts like transitive $SUBSET
|
#
71fdb8d8 |
|
06-Apr-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Attempt at better Abbrev protection This in the face of simplification and the variable elimination done by RW_TAC and friends. Core sequence, -t1 and some of -t2 builds (up to category theory example). Machinery for dynamically reverting to the old behaviours possible through diminish_srw_ss and a trace variable. This is work on github issue #800
|
#
31b3ff6d |
|
26-Jun-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Define a disjoint-union function ('a set -> 'b set -> ('a + 'b) set)
|
#
a0625e3a |
|
26-Jun-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Prove a "deep intro" rule for pred_set$CHOICE (for DEEP_INTRO_TAC) It's vaguely annoying that we even have CHOICE when we could just use $@...
|
#
c0ca1d19 |
|
28-May-2020 |
Chun Tian <binghe.lisp@gmail.com> |
Product measure and Tonelli's theorem
|
#
486e9658 |
|
11-Apr-2020 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Updated HOL Description for mathematical theories (with other cumulative fixes)
|
#
b8cf66f9 |
|
26-Apr-2020 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Enhanced fcpTheory (FCP_FST, FCP_SND, FCP_CONCAT_THM, ...); moved duplicated HAS_SIZE to upstream
|
#
87b2e48f |
|
20-Mar-2020 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Strong Law of Large Numbers for uncorrelated r.v.'s (SLLN_uncorrelated)
|
#
35879111 |
|
18-Aug-2019 |
Chun Tian <binghe.lisp@gmail.com> |
Tactic to automate some routine set theory by reduction to FOL (#722) * Moved SET_TAC into pred_setLib; some additions in pred_set and real theories * Added quantifiers to COUNT_11 * Added missing "from_def" and related theorems (moved from real_topology to util_prob) * Renamed SET_RULE to SET_CONV * Added util_probTheory (from_def) into dependencies of real_topologyTheory * Cancel changes in seqTheory * Cancelled SUBSET_DIFF_DISJOINT and SUBSET_BIGUNION * Further canceled two "tail_*" theorems * IMAGE_EMPTY_FUN -> IMAGE_CONST (more general) * Canceled IMAGE_EMPTY_FUN/IMAGE_CONST (IMAGE_EQ_SING is more general) * Moved SET_TAC, ASM_SET_TAC and SET_RULE to bossLib with documentation (help and release notes) * Reverted (original) empty lines in pred_setLib files
|
#
f4ed8aa5 |
|
09-Aug-2019 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Implement new Type syntax to stand in for type_abbrev{,_pp} Use it in pred_set and words theories
|
#
db944bd8 |
|
07-Aug-2019 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Make some PREIMAGE theorems automatic rewrites Also remove |- SING s ==> FINITE s from the set of automatic rewrites. The presence of this is bad because a "Once" simplification theorem meant for s may fire when the simplifier attempts to discharge the hypothesis, and so it won't get to fire when actually rewriting s in the "main" goal. (And no-one uses SING.) Knock-on effects simplify folCanonScript.sml, the experience of writing which prompted these changes in the first place.
|
#
95e0fc6e |
|
02-Jul-2019 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Use new and improved Induct_on to simplify some proofs in pred_set
|
#
c8243366 |
|
17-Jun-2019 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Fix LaTeX for universal set: \ensuremath{\cal U} leaks \cal mode Instead, need to write \ensuremath{{\cal U}}
|
#
6673421b |
|
16-May-2019 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Fixes for pred_set to build under MoscowML+tightequality
|
#
70c6fb7a |
|
16-May-2019 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Remove older of Theorem syntaxes (the one with the quotes) It's confusing to allow two, and it seems pretty clear that the Proof-QED proof is nicer.
|
#
bac35d90 |
|
07-Mar-2019 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Fix handling of "IN_" thms in pred_setScript given Theorem syntax Issue is that Theorem foo: ... Proof .. QED turns into a call to Q.store_thm, but the code in pred_setScript wants to intercept calls to store_thm to add _applied versions of various theorems. Rebind Q structure at head of file to achieve this.
|
#
996d84d6 |
|
07-Mar-2019 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Get src/pred_set to build given tight equality
|
#
529ea108 |
|
20-Feb-2019 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Use Theorem syntax more in pred_setScript.sml
|
#
ee840626 |
|
20-Feb-2019 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add theorem about triangular numbers (SUM_SET (count n)) This is inspired by a theorem from CakeML, but generalised as the CakeML theorem unnecessarily restricted itself to n > 0.
|
#
dc23ceb6 |
|
14-Jan-2019 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Move some theorems into HOL from CakeML Touched theories include alist, list, option, pred_set.
|
#
4aad987d |
|
02-Dec-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Remove Unicode in src that my last commit introduced
|
#
393360fd |
|
01-Dec-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Move some theorems into pred_setTheory from CakeML One, INFINITE_INJ_NOT_SURJ prompts a complete reworking of the very old proof in this script that establishes something similar but only for universal sets. The new result is stronger, and is used to establish the old one. The new proof is in a similar style, but uses technology (METIS_TAC and the simplifier) that wasn't available in HOL88. It also uses a newer result (the statement of the pigeonhole principle). It's rather shorter therefore.
|
#
9f4b3059 |
|
10-Nov-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Change type_abbrev to not alter printing behaviour If printing of abbreviations is desired, users must now use type_abbrev_pp. Closes #599
|
#
2b5e79a7 |
|
08-Nov-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Move p/printing of set comprehensions out of src/parse The code for this can be put into pred_set/src/pred_setpp, making the core pretty-printer slightly simpler (which has to be a good thing). Also fix the minor pretty-printing indentation bug identified in github issue #610. Making this a "user pretty printer" means that it takes precedence over overloads. Introduce a new feature whereby adding a (dummy) user-printer with the empty name causes terms matching this pattern to be printed without any user-printers getting a chance to fire. This gives terms that are handled by overloads a chance to be seen by the core printing machinery. (User printers are checked for first and can otherwise mask everything else.) Closes #610
|
#
4778f606 |
|
21-Oct-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Delete trailing whitespace in src/
|
#
f5bd5abc |
|
07-Sep-2018 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Merged hol-light's cardTheory (rich_cardinalTheory) with HOL4's cardinalTheory
|
#
8f627d12 |
|
27-Aug-2018 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Merged HOL4's original topologyTheory with HOL-light's version
|
#
7f94f460 |
|
22-Aug-2018 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Added rich_topologyTheory and dependents
|
#
acda44ba |
|
16-Aug-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add is_measure_maximal constant to pred_set; include minor cleanups Cleanups include making automatic rewrites happen in the flow of the script file rather than being delayed until the end. The is_measure_maximal constant has definition: is_measure_maximal m s x <=> x IN s /\ !y. y IN s ==> m y <= m x Prove some simple theorems about this.
|
#
57e62af1 |
|
22-Jul-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Revert "Add hypotheses count check to TAC_PROOF." This reverts commit 01930d56ce7a31c10ff7f422a0cf535a8c502a59. I don't believe that changing this primitive is a good idea. I'd like TAC_PROOF to stay as the base primitive that applies a tactic to a goal state without checking for validity or similar. This change is also causing breakages in CakeML and examples/machine-code/lisp. If there is a need for this sort of validity-style check (apart from what is done by expand), it could be added to prove quite reasonably, possibly there under the control of another trace variable, or just permanently on (as it is easy enough to change the behaviour of prove by adjusting the reference it consults).
|
#
01930d56 |
|
16-Jul-2018 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Add hypotheses count check to TAC_PROOF. This helps guard against the following: val lem = Q.prove( `F`, ACCEPT_TAC (ASSUME ``F``) ) Before this returned the theorem [F] |-> F without complaint, despite an "Invalid tactic" exception being raised when using proofManagerLib.e. This proof will now fail. The new check falls short of requiring alpha equivalence of assumption lists, which would be safer. This change has identified a few areas of imprecision within automation, namely within "dep_rewrite" and "Satisfy". There it may be the case that a subset of the stated assumptions appear in the final theorem.
|
#
6a81a039 |
|
21-May-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Remove TABs from src Will also make selftest to check that they aren't introduced
|
#
d2d6d792 |
|
21-May-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Change irule to not include a rpt conj_tac effect Closes #465
|
#
1e0d2028 |
|
11-Apr-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Re-implement Datatype package with TypeBase sexps (not adjoin)
|
#
4b0a9597 |
|
25-Mar-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Fix multi-line list forms (incl. records)
|
#
84a8966a |
|
26-Nov-2017 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add some theorems from CakeML pred_set: to do with bijections and surjections list: MAP2 and LIST_REL results pair: rewrites with (FST x = y) and (SND x = y) as LHSs other changes are fixes for broken proofs.
|
#
95d60bd3 |
|
02-Oct-2017 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Remove -- as an alias for Term parser. As per comment in release notes this has long been replaced as appropriate style.
|
#
0f42be95 |
|
01-Aug-2017 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Provide new automatic rewrite for “UNIV x” (rewrites to T)
|
#
45f93fbd |
|
01-Aug-2017 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Correctly isolate univ user-pretty-printer This preserves it across set_grammar_ancestry calls, and simplifies the script file slightly. Closes #445
|
#
6b4d41ff |
|
31-Jul-2017 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Move FINITE_BIJ_COUNT_EQ to pred_setTheory to simplify FINITE_BIJ_COUNT, with miller and diningcryptos examples adjusted
|
#
44dee8ca |
|
23-Jul-2017 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Clean up of extra_pred_setScript.sml
|
#
57853db3 |
|
20-Jul-2017 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
More additions in pred_set and util_probTheory
|
#
50824875 |
|
10-Jul-2017 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Simplified cardleq_ANTISYM (using SCHROEDER_BERNSTEIN in pred_setTheory); moved INJ_BIJ_SUBSET to pred_setTheory
|
#
4199267b |
|
10-Jul-2017 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Fixed remain issues in examples/miller
|
#
3304542b |
|
06-Jul-2017 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Move BIJ_FINITE_SUBSET and IMAGE_II from util_prob to pred_setTheory
|
#
c50b4868 |
|
06-Jul-2017 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Move basic PREIMAGE lemmas from util_prob to pred_setTheory
|
#
209b28a4 |
|
06-Jul-2017 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Moved FINITE_BIJ and BIJ_ALT to pred_setTheory
|
#
29629bcf |
|
06-Jul-2017 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Renamed countable_alt to upper cases
|
#
d724b724 |
|
06-Jul-2017 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Moved COUNTABLE_ALT (as COUNTABLE_ALT_BIJ) and dependencies to pred_setTheory
|
#
12a4e7ee |
|
05-Jul-2017 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Removed some duplicated countable theorems from util_probTheory
|
#
52fa87d8 |
|
06-Jul-2017 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Merged more countable theorems into pred_setTheory
|
#
56a12929 |
|
06-Jul-2017 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Remove duplicated countable_def (in util_prob) and prove it as an alternative definition (countable_alt)
|
#
a47b1cfb |
|
05-Jul-2017 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Move Schroeder-Bernstein theorem (and related settings) to pred_setTheory (from util_prob): SUBSET_THM K_SUBSET SUBSET_K FUNSET DFUNSET IN_FUNSET IN_DFUNSET FUNSET_THM UNIV_FUNSET_UNIV FUNSET_DFUNSET EMPTY_FUNSET FUNSET_EMPTY FUNSET_INTER schroeder_close SCHROEDER_CLOSE SCHROEDER_CLOSED SCHROEDER_CLOSE_SUBSET SCHROEDER_CLOSE_SET SCHROEDER_BERNSTEIN_AUTO SCHROEDER_BERNSTEIN BIJ_INJ_SURJ
|
#
c89e09a5 |
|
05-Jul-2017 |
Chun Tian (binghe) <binghe.lisp@gmail.com> |
Moved 23 small theorems from util_prob to pred_setTheory: BIGINTER_SUBSET BIGUNION_IMAGE_UNIV BIJ_SYM BIJ_SYM_IMP BIJ_TRANS DIFF_BIGINTER DIFF_INTER DIFF_INTER2 DISJOINT_ALT DISJOINT_COUNT DISJOINT_DIFF DISJOINT_DIFFS EQ_SUBSET_SUBSET FINITE_REST_EQ INFINITE_INJ INJ_IMAGE_BIJ IN_BIGINTER_IMAGE IN_BIGUNION_IMAGE IN_EQ_UNIV_IMP SUBSET_ADD SUBSET_INTER1 SUBSET_INTER2 SURJ_IMP_INJ
|
#
55622e44 |
|
24-Apr-2017 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Get core HOL to build with new definition of "by" Progress with github issue #407
|
#
0525ca92 |
|
26-Dec-2016 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
quicker proof of SURJ_INJ_INV
|
#
9c3698fc |
|
26-Dec-2016 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
pred_setTheory.INJ_LINV_OPT_IMAGE, lemmas
|
#
28b06892 |
|
26-Dec-2016 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
clearer proof of INJ_CARD, extra lemmas
|
#
9cfcabb6 |
|
24-Dec-2016 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
DELETE_SUBSET_INSERT and SUBSET_INSERT_DELETE almost the same new thm SUBSET_OF_INSERT
|
#
bb06ae24 |
|
28-Jul-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Fix pre-boss theories in light of pat_assum renaming
|
#
1f63d5fa |
|
02-May-2016 |
Ramana Kumar <ramana@member.fsf.org> |
Add various theorems from CakeML
|
#
e8457c3a |
|
23-Mar-2016 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Add Theory.quote_adjoin_to_theory. Use this in llistTheory. This should close #304. This has been implemented using a new function Portable.quote_to_string_list. Other uses of adjoin_to_theory under src/ have been updated.
|
#
9524847d |
|
10-Mar-2016 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Remove some duplicates of the theorem TRUTH. These are: • INFINITE_DEF and IN_LIST_TO_SET (replaced with overloadings) • IN_APP_applied and IN_ABS_applied (inadvertently generated) Also, made changes to try to avoid new definitions in listTheory accidentally having a "_DEF" suffix instead of "_def". Old naming inconsistencies still remain in listTheory (e.g. EXISTS_DEF, FIND_def and FLAT). These changes will break a few proofs but patches should be trivial (i.e. removing references to these TRUTH theorems and/ or renaming "_DEF" to "_def").
|
#
3f25356f |
|
17-Feb-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add 2 theorems about SUM_IMAGE to pred_setTheory * g injective ⇒ Σ f (IMAGE g s) = Σ (f o g) s * g bijective on s ⇒ Σ (f o g) s = Σ f s From Joseph Chan
|
#
30f78bd2 |
|
14-Dec-2015 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
User pp fns can note terms as binders to system printer This allows better behaviour in a test case shown to me by Mike, where annotations in monad-syntax weren't appearing.
|
#
cb3a93b2 |
|
09-Dec-2015 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
more faster proofs in set_relation
|
#
6f42ef25 |
|
09-Dec-2015 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
faster proof of extend_linear_order
|
#
33e8e85f |
|
09-Dec-2015 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
tweaking of slow proofs - strict_linear_order
|
#
02e032aa |
|
08-Dec-2015 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
lemmas re tc, rrestrict
|
#
b72783a8 |
|
07-Dec-2015 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
prove FINITE_ISO_NUM using FINITE_BIJ_CARD_EQ
|
#
55e83975 |
|
06-Dec-2015 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
changing Unicode to ASCII
|
#
bd51989d |
|
06-Dec-2015 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
FINITE_BIJ_COUNT, and proved FINITE_WEAK_ENUMERATE from it
|
#
b307e77e |
|
06-Dec-2015 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
shorter proof of FINITE_WEAK_ENUMERATE also IN_GSPEC(_IFF)
|
#
aa853bfc |
|
25-Nov-2015 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Delete trailing whitespace in src/
|
#
9112173e |
|
08-Nov-2015 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
lemmas about CARD (IMAGE ...)
|
#
4e806d11 |
|
08-Nov-2015 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
LINV and RINV can be defined in terms of LINV_OPT which also makes LINV and RINV equal to each other
|
#
f3fcad05 |
|
03-Nov-2015 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
LINV_OPT, Left inverse, to option type result is NONE outside image of domain also new result CARD_IMAGE
|
#
9a27d2c2 |
|
02-Nov-2015 |
Ramana Kumar <ramana@member.fsf.org> |
start towards OpenTheory compatibility for relation and pred_set This is potentially going to be complicated since OpenTheory defines a type of sets and HOL4 does not.
|
#
60449c30 |
|
17-Mar-2015 |
Michael Norrish <michael.norrish@nicta.com.au> |
Remove vacuous quantification in SUBSET_MAX_SET There was a stray universally quantified variable that didn't appear in the statement of the theorem. Also slightly simplify proof.
|
#
5db1c01a |
|
23-Oct-2014 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Attempt to tidy-up some proof scripts. Much of this has come from CakeML. Removed Unicode and tried to eliminate lines longer than 80 characters. Also added a few new constants to listTheory: INDEX_FIND, FIND and INDEX_OF. Added "nub" to listSyntax.
|
#
3349d964 |
|
20-Sep-2014 |
Ramana Kumar <ramana@member.fsf.org> |
various theorems about cardinality and sets from CakeML, probably some are originally from HOL Light
|
#
8b94e591 |
|
13-Aug-2014 |
Scott Owens <S.A.Owens@kent.ac.uk> |
Added lemma about going in MAX_SET
|
#
29735d0f |
|
12-Aug-2014 |
Scott Owens <S.A.Owens@kent.ac.uk> |
A few set lemmas from CakeML.
|
#
875ba111 |
|
06-Jun-2014 |
Michael Norrish <michael.norrish@nicta.com.au> |
Make some pred_set rewrites automatic. Also fix up the script file's redefinition of store_thm (used to make alternative versions of IN_<x> theorems).
|
#
54086620 |
|
02-May-2014 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
New automatic rewrite for GSPEC f x, which shouldn't happen much.
|
#
f3974962 |
|
20-Mar-2014 |
Ramana Kumar <ramana@member.fsf.org> |
New automatic rewrite: !s. POW s <> {}
|
#
914e3447 |
|
17-Mar-2014 |
Michael Norrish <michael.norrish@nicta.com.au> |
Export pred_setTheory's BIJ_EMPTY as an automatic rewrite.
|
#
807ace7a |
|
17-Mar-2014 |
Michael Norrish <michael.norrish@nicta.com.au> |
Prove ⊢ x ∉ s ⇒ s DELETE x = s and export as a rewrite It turns out that the implication can be an iff (which is the existing DELETE_NOT_ELEMENT theorem), but this is less useful for most simplification.
|
#
d1a6a38d |
|
05-Mar-2014 |
Michael Norrish <michael.norrish@nicta.com.au> |
Define MAX_SET on the empty set to equal 0. This make the relevant equation FINITE s ==> (MAX_SET (e INSERT s) = MAX e (MAX_SET s))
|
#
2b0ba9ea |
|
31-May-2013 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Some new theorems about injectivity, surjectivity and countability
|
#
db871b5d |
|
27-May-2013 |
Michael Norrish <michael.norrish@nicta.com.au> |
Minor polish in pred_set + theorem about CARD(BIGUNION s)
|
#
52d9d5bd |
|
23-May-2013 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Polish pred_setTheory with new rewrites for CARD applied to DIFF and UNION. Preserve old theorems for the sake of backwards compatibility, so give new theorems names with _EQN as suffix.
|
#
6fcbc4eb |
|
20-Apr-2013 |
Ramana Kumar <ramana.kumar@gmail.com> |
add various more constants to OpenTheoryMap
|
#
91583066 |
|
31-Oct-2012 |
Michael Norrish <michael.norrish@nicta.com.au> |
Put some syntax operations for bool$IN into boolSyntax.
|
#
1de5add5 |
|
31-Oct-2012 |
Michael Norrish <michael.norrish@nicta.com.au> |
Automatically prove a bunch of “applied” results for set constants. An “applied” theorem is of the form (set construction) x <=> ... where the ... will be from the theorem x ∈ (set construction) <=> ... So, for example, INSERT_applied is |- (x INSERT s) y <=> (x = y) \/ y ∈ s These theorems are all exported as rewrites, and provide a way of getting users out of holes where they have “set world” constructions but have lost the ∈ connection between the set and the possible element. Note that these theorems will attempt to put the users back into the “set world” because the RHSs will retain their uses of ∈. These theorems will still work fine when rewriting with IN_DEF: something like SIMP_TAC (srw_ss()) [IN_DEF] will eliminate the “IN”s, even as the “applied” theorems help to make progress with the other bits of the goal. There’s no handling of GSPEC yet, but perhaps that can wait for HOL Light style set-comprehension (see issue #85). The alternative is probably a special conversion to do the right thing, though perhaps just rewriting with GSPEC f v <=> ∃x. (v,T) = f x would do the trick in most cases. (The problem in general is that to get the above rewrite to work you have to throw in pairTheory.EXISTS_PROD as well.)
|
#
1468b25b |
|
25-Sep-2012 |
Michael Norrish <michael.norrish@nicta.com.au> |
Move theorem |- univ(:'a -> bool) = POW univ(:'a) to pred_setTheory.
|
#
a66904d8 |
|
24-Sep-2012 |
Michael Norrish <michael.norrish@nicta.com.au> |
Theorems about countable, including countability of various universes.
|
#
76c52880 |
|
24-Sep-2012 |
Michael Norrish <michael.norrish@nicta.com.au> |
A simplification-friendly version of the insert-absorption theorem.
|
#
2f2c9731 |
|
20-Sep-2012 |
Ramana Kumar <ramana.kumar@gmail.com> |
move some theorems about DIFF into pred_setTheory
|
#
fa6472be |
|
31-Jul-2012 |
Ramana Kumar <ramana.kumar@gmail.com> |
Revert "make patricia play nice..." This reverts commit da47401d5163b28a320790e7acca897d8374880c. Reason: qualified names in the list of add_persistent_funs exports are supposed to work. See comments on #73. The reason why they probably weren't working before is that you need to use a name like: "pred_set.FINITE_EMPTY" not "pred_setTheory.FINITE_EMPTY" Conflicts: src/list/src/listScript.sml src/patricia/patriciaScript.sml src/patricia/patricia_castsScript.sml src/pred_set/src/pred_setScript.sml (Conflicts all due to change in add_persistent_funs interface.)
|
#
0fc75877 |
|
30-Jul-2012 |
Ramana Kumar <ramana.kumar@gmail.com> |
change interface to add_persistent_funs (#73) and fix more calls The new interface takes a list of strings naming theorems. (The old interface took a list of (string * thm) pairs.) The new way better ensures consistency of theory development and theory load behaviour: you can no longer pass a name with a theorem that isn't actually saved under it. Theorems are looked up with DB.theorem, or failing that, DB.definition or DB.axiom. Alas, I found more examples using add_persistent_funs to add theorems in ancestor theories. Rather than modify the ancestor theories, I have opted to make the offending theories save the theorems they want to add to computeLib themselves so they have a name in the current theory to pass to add_persistent_funs. If this behavior was appropriate for patricia too (da47401) change it. Alternatively, if the ancestor theories should have exported those things for computeLib anyway, search this commit for new instances of "save_thm" to see what needs fixing.
|
#
da47401d |
|
30-Jul-2012 |
Ramana Kumar <ramana.kumar@gmail.com> |
make patricia play nice with new add_persistent_funs (#73) Some theories in src/patricia were calling add_persistent_funs for definitions from other theories (list and pred_set) and using the arbitrary code string to refer to those theorems with fully qualified names. The fix adopted here is to call add_persistent_funs for those constants in the theories where they are defined.
|
#
d2b71b5f |
|
05-Jul-2012 |
Konrad Slind <konrad.slind@gmail.com> |
Prep for pull.
|
#
be2f8ea8 |
|
04-Jul-2012 |
Michael Norrish <michael.norrish@nicta.com.au> |
Remove some trailing whitespace.
|
#
33bda56f |
|
26-Jun-2012 |
Konrad Slind <konrad.slind@gmail.com> |
Added size functions for finite sets, maps, and bags. These are helpful for measures supporting recursive definitions and induction schemes. The size functions have been added to the TypeBase, with the intent that Induct, Induct_on, Cases, and Cases_on should be applicable. (However, this has not been checked yet, so these might not work.) The size of a finite set is the number of elements in it, plus the sizes of all the elements. (The size of a set with 0 as an element is larger than that set with the zero deleted.) The size of a finite map is the number of mapped elements, plus the sizes of the mapped elements. Key size is ignored. The size of a finite multiset is the number of elements in the multiset plus the sizes of the elements. There are more extensive orderings (e.g. the multiset order) but they aren't measures, which is important for the way termination proofs are automated.
|
#
5b587535 |
|
26-Jun-2012 |
Konrad Slind <konrad.slind@gmail.com> |
Allow "non-datatypes" in TypeBase to have optional induction thm. Provide appropriate values for this field for finite sets, strings, integers, finite maps and words.
|
#
e38c0c55 |
|
07-Jun-2012 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Simple new (automatic rewrite) theorem about SURJ and IMAGE.
|
#
694d6bb2 |
|
01-May-2012 |
Ramana Kumar <ramana.kumar@gmail.com> |
Congruence theorem for IMAGE
|
#
949dc465 |
|
26-Apr-2012 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Ensure tDefine quantifies variables, making it consistent with Define. Obviously this will break code that relies on the former behaviour.
|
#
9c8c1009 |
|
18-Apr-2012 |
Ramana Kumar <ramana.kumar@gmail.com> |
theorem: MAP preserves injectivity Maybe the statement/name should match my commit summary better? Also, proved a simple lemma about replacing the set arguments to INJ with super/subsets.
|
#
b33691d2 |
|
12-Apr-2012 |
Ramana Kumar <ramana.kumar@gmail.com> |
theorem characterising INJ f (x INSERT s) t
|
#
ce1fd0cc |
|
09-Apr-2012 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add a couple of results about pred_set$BIJ.
|
#
e297c962 |
|
09-Apr-2012 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Make FINITE_INDUCT available to the Induct_on tactic.
|
#
cbf0d716 |
|
20-Feb-2012 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Remove structure ... = struct ... end bracketing from pred_setScript.sml.
|
#
00cb5eaf |
|
20-Feb-2012 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add a theorem telling us what univ(:bool) is.
|
#
026f0c20 |
|
31-Jan-2012 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Slight simplifications of two results about partition. Thanks to Joseph Chan for the observation that the equiv_on precondition was not necessary in these cases.
|
#
a016090a |
|
15-Jan-2012 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add new theorem about cardinalities of sets under injective images. Move some rewrite exporting to happen immediately after the rewrite is proved so that later proofs within the same theory can benefit. Effect on dependent theories is unchanged of course.
|
#
c81e0b17 |
|
12-Jan-2012 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Prove that IMAGE f is injective if f is.
|
#
e5bdf831 |
|
12-Jan-2012 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
New theorem stating that pred_set's count operation is injective.
|
#
eef0d450 |
|
10-Jan-2012 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Document new PROD_IMAGE and PROD_SET constants in release notes. Also perform overloading to Unicode Pi and PI.
|
#
f8fd8324 |
|
02-Oct-2011 |
Ramana Kumar <ramana.kumar@gmail.com> |
add various names to the OpenTheory map This is in preparation for logging llistTheory. Notes: - Sent combin$C to Function.Combinator.c (same for combin$S). Another name might be preferred on the OpenTheory side. - Not sure what bool$BOUNDED is about; dumped it in the HOL4 namespace. - Put lots of pred_set constants in the Set namespace, but in the standard (OpenTheory) library it seems like Set is for constants operating on an abstract type of sets (rather than predicates). I'm not sure whether we should use a different namespace when working with sets-as-predicates or just pretend predicates are the abstract type and do a bit of magic on article reading/writing as necessary (don't know what that would be exactly yet). - Similar for constants in set_relation, which I'm currently putting in the Relation namespace. Although it looks like currently OpenTheory doesn't use an abstract type of relations (but probably it will later). - Sent marker$Cong and marker$Abbrev to Unwanted.id, but not sure if Unwanted.id is supposed to be polymorphic (whereas those are identity functions restricted to bool). Similar for numeral$iZ - sent GSPEC to Set.specification; maybe not an obvious name... - Using top-level "While" namespace for whileTheory - dumped numeral$iiSUC in HOL4 namespace; not sure what to do with it - BIT2 is going to Number.Numeral.bit2; this is in line with wanting the base library to be liberal, i.e. a union of all useful basic constants and theorems (so has bit0, bit1 and bit2)... but I think there may be competing goals for base
|
#
b2760b41 |
|
25-Sep-2011 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Revert change to gspec2 syntax; we can use { .. | .. | .. } here.
|
#
a2328149 |
|
23-Sep-2011 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Adopt ML-style syntax for case expressions and use freed up "||" for bitwise-or. See issue #24.
|
#
b481c08f |
|
09-Aug-2011 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add PROD_IMAGE and PROD_SET constants (analogous to SUM_IMAGE etc). From Joseph Chan.
|
#
0bbd2a7e |
|
21-Jun-2011 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Rename TruePrefix to Prefix; use fixity options with NONE for what was Prefix. 90+% of this work was done by Ramana Kumar. The following list are the commits for a series of individual commits that have been squished into one big change: * remove mention of TruePrefix from the add_rule docfile * first batch of changes removing TruePrefix from src/parse * replace TruePrefix by Prefix in boolScript.sml * remove TruePrefix from Rsyntax is a fixity ever required for new_specification? * some more Prefix -> NONE and TruePrefix -> Prefix in theories * TruePrefix changes for datatype * TruePrefix changes for res_quan * TruePrefix->Prefix in a TeX selftest * TruePrefix changes for quotient * TruePrefix changes for integer and real * fix quotient examples for TruePrefix removal * more fixes for quotient examples * fixes for lambda example for TruePrefix removal * Reword description manual in light of removal of TruePrefix. * Fix msgTheory quotient example; Poly 5.3 had problems with monotypes. * Fixes for files in examples/lambda given removal of TruePrefix. * Fix in examples/unification given removal of TruePrefix. * Fix in examples/HolCheck given removal of TruePrefix. * Fixes in examples/acl2 given removal of TruePrefix.
|
#
cbd80bb5 |
|
14-Jun-2011 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add LaTeX notation for set cross-product operation.
|
#
f1e3425f |
|
01-Jun-2011 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
New results and automatic rewrites about pred_set$SING. Due to a meeting with Joseph Chan.
|
#
da03eae1 |
|
23-May-2011 |
Ramana Kumar <ramana.kumar@gmail.com> |
Characterization of BIJ as existence of an inverse
|
#
7b56baa3 |
|
21-May-2011 |
Ramana Kumar <ramana.kumar@gmail.com> |
A couple of theorems about "SIGMA f s <= SIGMA g s".
|
#
2082e910 |
|
22-Mar-2011 |
Ramana Kumar <ramana.kumar@gmail.com> |
A couple more theorems about ABS_DIFF Also some lemmas about relationship between subtraction and less-than. If only DECIDE_TAC were available here...
|
#
a4acbc77 |
|
06-Jan-2011 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Significant change to pretty-printing; affects user-printing API. The change allows user-printers to alter the main printer's notion of what is a "seen free variable", and what is bound. The latter causes the colouring. The first notion is important when show_types is on, as types are only given for the first occurrence of a free variable. This allows the monadsyntax to do the right thing with the colouring of variables.
|
#
cb33ef75 |
|
05-Jan-2011 |
Ramana Kumar <ramana.kumar@gmail.com> |
Add Unicode version for SIGMA
|
#
6020bbda |
|
03-Jan-2011 |
Ramana Kumar <ramana.kumar@gmail.com> |
Theorem about exactly when SIGMA f s equals 0
|
#
2d4ce53c |
|
10-Dec-2010 |
Ramana Kumar <ramana.kumar@gmail.com> |
Tactic for eliminating MAX_SET
|
#
921253c4 |
|
09-Dec-2010 |
Ramana Kumar <ramana.kumar@gmail.com> |
Add congruence theorem for SUM_IMAGE We might want one for ITSET too one day.
|
#
c16186f4 |
|
23-Aug-2010 |
Ramana Kumar <ramana.kumar@gmail.com> |
Added new constant 'pairwise' for asserting a predicate on all pairs of elements in a set.
|
#
25dd5af4 |
|
16-Aug-2010 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
New REL_RESTRICT constant; variety of proofs. Best is probably that strong partial orders on finite sets are well-founded. REL_RESTRICT could live in relationTheory, most of the subsequent proofs need to be in pred_setTheory because of the use of the FINITE constant.
|
#
01ea2ca7 |
|
15-Aug-2010 |
Ramana Kumar <ramana.kumar@gmail.com> |
Added rewrite FINITE_REST.
|
#
e9856761 |
|
11-Aug-2010 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Make TeX of UNIV look better (removing a stray space to the left). Also make the nice TeX form work if Unicode-pretty-printing of UNIV has been turned off.
|
#
df7d89ab |
|
09-Aug-2010 |
Ramana Kumar <ramana.kumar@gmail.com> |
Added theorem BIGINTER_UNION, analogous to BIGUNION_UNION.
|
#
89fcac43 |
|
09-Aug-2010 |
Ramana Kumar <ramana.kumar@gmail.com> |
A couple of theorems about SUBSET respecting PSUBSET's transitivity.
|
#
7b73c8d7 |
|
16-Jul-2010 |
Konrad Slind <konrad.slind@gmail.com> |
src/num/theories/SingleStep.{sig,sml} is gone. The defininitions of Cases, Cases_on, Induct, Induct_on, CASE_TAC (and co.) are now in basicProof/BasicProvers. completeInduct_on and measureInduct_on are now in numLib. recInduct is now in src/tfl/Induction.sml. All these are collected in bossLib, so the changes should be invisible to ordinary users. SingleStep.*.doc has been changed accordingly. BasicProvers.NORM_TAC should now automatically perform all case splits (from if-then-else expressions as well as case expression) arising anywhere in the goal.
|
#
051d07b5 |
|
23-Jun-2010 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
New statement of SUBSET_FINITE that can be directly MATCH_MP_TAC'ed. I've been so annoyed by SUBSET_FINITE so many times, but those days have finally come to an end.
|
#
0e2788b5 |
|
22-Jun-2010 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
INFINITE is now an abbreviation for ``\s. ~FINITE s``.
|
#
38724691 |
|
14-Jun-2010 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Prove some results about the finite-ness or otherwise of some universal sets.
|
#
ea493c8e |
|
10-May-2010 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Allow empty list forms to be overloaded ([], {}, etc). This gives us the ability to get nice TeX for them. Instantiate this ability for emptyset.
|
#
d728bf39 |
|
04-May-2010 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add TeX notation for 'proper subset'.
|
#
6d87ca0c |
|
19-Apr-2010 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Fix handling of special 'U' constant, retaining better backwards compatibility. In particular, there is now a special form 'univ' that behaves as 'U' did. Further, with Unicode on, the character U+1D54C is used in the same way. This character may not be in many fonts, so add another trace to turn its use off. If you can see it, it's a nice 'double-struck' U. I would have gone for a script-style U, but it leant over too much, and so overlapped the following left-paren character.
|
#
ec527121 |
|
19-Apr-2010 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Make U syntax for UNIV consistent in its parsing and printing. Now you can write FINITE U(:'a), and it parses. This used to require FINITE (U(:'a)), which is so many parentheses that one wonders about the usefulness of the abbreviation.
|
#
38ed962b |
|
19-Mar-2010 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
TeX macros in TeX_notation calls need to be terminated with {}.
|
#
621bb980 |
|
17-Mar-2010 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Move more TeX notations into appropriate theory files. Word-related notation still to do.
|
#
a0b20792 |
|
26-Feb-2010 |
Ramana Kumar <ramana.kumar@gmail.com> |
Added a number of theorems, mainly to finite_mapTheory. finite_map: FLOOKUP_FUNION FEVERY_FLOOKUP FLOOKUP_o_f FUPDATE_LIST_APPEND FUPDATE_FUPDATE_LIST_COMMUTES FUPDATE_FUPDATE_LIST_MEM pred_set: COMPL_UNION
|
#
06c3bf84 |
|
29-Jan-2010 |
Tjark Weber <Tjark.Weber@cl.cam.ac.uk> |
Better support for sets as predicates in HolSmtLib, replacing {x | P x} by P.
|
#
a772037e |
|
19-Jan-2010 |
Ramana Kumar <ramana.kumar@gmail.com> |
Unicode version for PSUBSET
|
#
472dd880 |
|
12-Jan-2010 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add some automatic rewrites for SUM_SET and count (of pred_setTheory).
|
#
79e987ee |
|
25-Nov-2009 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Slight tidy-up of countability theorems in pred_setTheory. Define the num_to_pair and pair_to_num functions used there in terms of the same functions given in numpairTheory. Also add Unicode symbol (LaTeX's \times, U+D7) for CROSS.
|
#
d13e8d54 |
|
25-Nov-2009 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add syntax for universal sets ``U(:ty)``, where ty is the type of element. The parsing can be done with an overload, but the pretty-printing is done with a custom user-level pretty-printer. It comes with its own trace variable to turn it off. To turn it off permanently, use Parse.remove_user_printer "UNIVprinter"
|
#
ec5ad4b5 |
|
28-Jul-2009 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Another lemma from Ramana Kumar, this one about showing what I expect is a relatively common case for subset of a "big" union.
|
#
445f8728 |
|
16-Jul-2009 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Make FINITE_DIFF an exported rewrite and prove a little "arithmetic" rewrite UNION_DIFF (s <= t ==> (s + (t - s) = t)).
|
#
aa702a0a |
|
24-Mar-2009 |
Thomas Tuerk <Thomas.Tuerk@cl.cam.ac.uk> |
Addition of some mixed theorems
|
#
24520cf9 |
|
21-Mar-2009 |
Scott Owens <Scott.Owens@cl.cam.ac.uk> |
Forgot to store a theorem in the last commit.
|
#
60643e6b |
|
20-Mar-2009 |
Scott Owens <Scott.Owens@cl.cam.ac.uk> |
A definition of countable sets, some basic theorems about them, and an few misc. supporting theorems.
|
#
3fee4ee4 |
|
22-Feb-2009 |
Konrad Slind <konrad.slind@gmail.com> |
Implement ML code generation for large records.
|
#
8654de63 |
|
07-Feb-2009 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Attempt to tidy up (fix) EmitML and finish off the transition that Scott started. EmitML has been moved to the end of the build sequence. "Hooks" have been eliminated and all EmitML related stuff has been removed from the various theory directories. All code for generating ML/Caml is now self-contained within src/emit. I've not tested the generated Caml code but the SML seems to build fine. The directories: src/theoryML src/theoryOcaml src/emitScript have been replaced by src/emit/theories/ML src/emit/theories/Caml src/emit/theories
|
#
d9003833 |
|
26-Nov-2008 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Fairly dramatic change, supporting the use of "syntactic patterns". It is now possible to overload a name to term (typically a lambda-abstraction) in order to create syntax-only definitions. For example, there is a definition of not-equals now in the system: val _ = overload_on ("<>", ``\x y. ~(x = y)``) val _ = set_fixity "<>" (Infix(NONASSOC, 450)) This definition is parsed and pretty-printed. Two other annoying changes. The interface for adding unicode variants has changed, and I have made precedence level 450 of the parser non-associative. This latter change has caused most of the (minor) adjustments to the files below. The regression test doesn't go through yet. (Currently there is a failure in quotient/examples/sigma that I don't understand.)
|
#
effc431b |
|
01-Oct-2008 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Change export_rewrites back to its old API (without requiring an extra string). When exported, the resulting simpset fragment always picked up the name of the theory to be the base of its name, so there didn't seem much point in giving users a false impression of naming power.
|
#
c62af45b |
|
31-Aug-2008 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Disable the printing of EMPTY as the Unicode emptyset character because this breaks the "list form" printing of literal sets ({5} prints as ``5 INSERT UEMPTY`` (where UEMPTY is the Unicode emptyset character)). I am not sure how to fix the logic in the pretty-printer to handle this properly at the moment.
|
#
6971535d |
|
27-Aug-2008 |
Konrad Slind <konrad.slind@gmail.com> |
Getting rid of some pattern-matching complaints, as Anthony suggested.
|
#
2fa0e0d3 |
|
22-Aug-2008 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Modify Unicode to use an interface whereby theories can specify Unicode alternatives for their constants. These can be turned on and off by fiddling with the trace variable "Unicode". I.e., to see pretty stuff, run hol and then - set_trace "Unicode" 1; > val it = () : unit - FORALL_SIMP; > val it = <...pretty stuff...> I haven't gone through and done the words because it's time for me to go home. Remaining issues: * type abbreviations * the lambda binder (this is not a constant, so we can't use overloading) * restricted quantifiers * whether automatically having Unicode stuff in the grammar (even if disabled) might cause non-Unicode users pain
|
#
aed05f4e |
|
20-Jul-2008 |
Konrad Slind <konrad.slind@gmail.com> |
A whole mess of small changes intended at making simpsets prettyprint informatively in the interactive loop. Very possibly I haven't updated all the files in the examples directories.
|
#
7d90547c |
|
29-Mar-2008 |
Konrad Slind <konrad.slind@gmail.com> |
This check-in mainly fixes a problem with literals occurring in patterns of TFL-style definitions. There are a host of other minor changes as well.
|
#
532d6d9a |
|
28-Dec-2007 |
Konrad Slind <konrad.slind@gmail.com> |
hanges to upgrade EVAL on BIGUNION {}. M src/parse/term_grammar.sig M src/pred_set/src/pred_setScript.sml M src/pred_set/src/pred_setLib.sml M src/pred_set/src/PFset_conv.sml
|
#
fdd5847d |
|
30-Jan-2007 |
Konrad Slind <konrad.slind@gmail.com> |
Use tDefine to define ITSET.
|
#
e33b8b0a |
|
21-Sep-2006 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Type abbreviations now print by default. Where this is "problematic", as with the set and bag abbreviations, this printing can be turned off by calling disable_tyabbrev_printing, which takes the abbreviation name as an argument. (There is also a trace variable controlling tyabbrev printing globally.) Bag and set abbreviations are "problematic" because if left on they do things like - type_of ``(/\)``; > val it = ``:bool -> bool set`` : hol_type and - type_of ``(+)``; > val it = ``:num -> num multiset`` : hol_type This code isn't done yet because it doesn't pick between multiple possibilities in an intelligent way. The heuristic I want to implement will take the most specific abbreviation first, and then the most recently asserted if two are equally specific.
|
#
03efaf19 |
|
25-Jul-2006 |
Konrad Slind <konrad.slind@gmail.com> |
Smoothing out ML code generation in the case of pseudo-constructors like pred_set$INSERT.
|
#
08c5f30d |
|
24-Jul-2006 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add a new exported rewrite to pred_set, and use it to prove another export-worthy rewrite in the theory of containers, namely that SET_TO_LIST {x} = [x]
|
#
a4450c0b |
|
14-Jul-2006 |
Konrad Slind <konrad.slind@gmail.com> |
Fixing up bugs spotted by Anthony.
|
#
4cb49006 |
|
12-Jul-2006 |
Konrad Slind <konrad.slind@gmail.com> |
Changes having to do with generating ML. System should build again.
|
#
c6f8da28 |
|
04-Jul-2006 |
Konrad Slind <konrad.slind@gmail.com> |
Fixing up treatment of "ABSDATATYPE" thingies, where ordinary constants are treated as datatype constructors in the generatd ML.
|
#
5c8f5906 |
|
22-Jun-2006 |
Konrad Slind <konrad.slind@gmail.com> |
Minor changes and bugfixes to ML code generation. Have renamed EmitML.exportML to EmitML.emitML, since exportML is used in SML/NJ to dump the image. Also renamed Globals.exportMLPath to Globals.emitMLDir (since it's a directory and not a path). Also fixed bug in code generated for constructors and tuples.
|
#
b29d4565 |
|
22-Jun-2006 |
Konrad Slind <konrad.slind@gmail.com> |
Upgrading EmitML to support records. Lots of associated changes as well.
|
#
5d6a6595 |
|
09-Jun-2006 |
Konrad Slind <konrad.slind@gmail.com> |
The new changes to records have been fixed so that the system will rebuild without error. Whether the record stuff actually does what it should, I am still checking. The big record stuff will have to be checked in Australia, probably, since I don't really understand it.
|
#
d67d1999 |
|
14-May-2006 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Extend the add_listform interface so that the user can specify a printing "consistency" for the block of list elements. Previously, it was just assumed that the user always wanted (INCONSISTENT,0). This is the value now specified in the various places where add_listform is used.
|
#
41ffd6d1 |
|
01-May-2006 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Export more rewrites, and prove a trivial result about complement.
|
#
ad57a8a3 |
|
10-Mar-2006 |
Konrad Slind <konrad.slind@gmail.com> |
Upgrading Define so that it proves more termination goals. Generates lex. combinations and tries them out, so gets some more ordinary recursions. Gets all iterated primitive recursions. Also has been taught about some operations on words (so recursion from w to w-1w will terminate, for example). Let me know of any bugs/slowdowns, etc.
|
#
d8e57a78 |
|
16-Feb-2006 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add more aggressive normalisation of multiplicative expressions to ARITH_ss. Also provide old_arith_ss values for scripts that don't want this new behaviour. Update proofs to go through again. Some should be a bit more robust in the face of future changes to arith_ss. Others just punt and refer to old_arith_ss.
|
#
014f6140 |
|
15-Feb-2006 |
Konrad Slind <konrad.slind@gmail.com> |
Changed the TypeBase to be indexed by types. Originally it was indexed by a single string (representing the type operator), then Michael changed it to a pair of strings (precise representation of the type operator). The latest change allows non-datatypes to be added to the TypeBase. This will allow case analysis and termination proofs to be supported for non-datatypes. I reckon there are still a few bugs left after the massive revision, so you might want to wait a while before upgrading.
|
#
78b1389c |
|
13-Feb-2006 |
Konrad Slind <konrad.slind@gmail.com> |
Added Pigeon Hole Principle (PHP).
|
#
13f030c2 |
|
07-Feb-2006 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Wide-ranging change to make the TypeBase export an interface forcing users to be concerned about which theory their types are from. Interactive users of the "induction_of", "axiom_of" and similar functions are thrown the only bone: they can effectively omit the theory parameter by using "" instead of a theory name. Prompted by a bug found by Tom Ridge where it was impossible to define a pattern matching function on a type with the same name as another type because the pattern-matching code was using dest_type and TypeBase.read on just the type-operator name.
|
#
e93d7856 |
|
05-Dec-2005 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Implement and document a new, unambiguous set comprehension syntax. Only fixes required are to ieeeScript where old style =>-| if-then-else syntax was nested to extraordinary degree without any parentheses. Adding parentheses was the only thing required to fix the problem.
|
#
02c42174 |
|
22-Oct-2005 |
Konrad Slind <konrad.slind@gmail.com> |
Added powerset operator and simple theorems (finiteness, cardinality). EVAL has been taught about it, etc.
|
#
adf911c8 |
|
25-Jul-2005 |
Konrad Slind <konrad.slind@gmail.com> |
Revised exportML so that it takes a path parameter, which tells where the ML corresponding to a theory is to be written. This has been propagated to all the theories that already export ML, and the mkword.exe tool has been upgraded to also take a path where it should write the generated ML. This is useful, because doing an exportML to the same directory as the theory files will end up confusing Holmake.
|
#
4cddaa12 |
|
12-Jul-2005 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Changed a couple of misleading/annoying names. The type ssdata is now called ssfrag (to bring it into line with documentation that talks about simpset fragments), and the constructor SIMPSET is now called SSFRAG. It never created a simpset, so the latter was a stupid name.
|
#
cc14cd5e |
|
23-Feb-2005 |
Scott Owens <Scott.Owens@cl.cam.ac.uk> |
Added theorems BIJ_LINV_BIJ and BIJ_LINV_INV
|
#
2da07975 |
|
10-Feb-2005 |
Konrad Slind <konrad.slind@gmail.com> |
Added a few more theorems about MIN_SET and MAX_SET.
|
#
999a347b |
|
25-Jan-2005 |
Konrad Slind <konrad.slind@gmail.com> |
Getting rid of HTML output on xTheory.sig files.
|
#
3a70d6f5 |
|
04-Jan-2005 |
Konrad Slind <konrad.slind@gmail.com> |
Trivial change to bound var. names in definitions of BIGUNION and BIGINTER. Motivated by documenting pred_setTheory in the Description.
|
#
fb0b2ec1 |
|
27-Nov-2004 |
Konrad Slind <konrad.slind@gmail.com> |
Hacking around to get HTML symbols put in generated `Theory.sig' files. Allows usual logic symbols (and some set theory symbols) in the generated html files, see help/HOLindex.html after a complete build of the system (examine a theory file). Only symbol not currently dealt with properly is lambda. Also, I thought I had emptyset sussed, but it stopped working for some reason ... not a problem since "{}" works just as well, and may be nicer.
|
#
69b879e1 |
|
23-Sep-2004 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Remove a couple of exported rewrites because they will cause the simplifier to loop unnecessarily trying to solve an existential problem.
|
#
138d26bb |
|
04-Aug-2004 |
Konrad Slind <konrad.slind@gmail.com> |
ML code generation for finite_map now added. Also, a whole host of minor changes and robustifications have been applied.
|
#
3bbbcbbd |
|
02-Aug-2004 |
Konrad Slind <konrad.slind@gmail.com> |
Exposed EMPTY and INSERT in the signature of the generated ML. This allows them to be used to build sets, but they still can't be used to take sets apart by pattern matching.
|
#
9c628044 |
|
30-Jul-2004 |
Konrad Slind <konrad.slind@gmail.com> |
Minor mods to add error messages in generated ML code. The current body of generated ML code now builds without any pattern-match warnings.
|
#
19bb8267 |
|
27-Jul-2004 |
Konrad Slind <konrad.slind@gmail.com> |
Added some theorem-proving to FAIL-based exceptions for partial set operations (just BINGINTER, I think, which doesn't make sense in the EMPTY case for finite sets).
|
#
de0f1205 |
|
21-Jul-2004 |
Konrad Slind <konrad.slind@gmail.com> |
ML code now generated from pred_set. Most of the operators can be handled, but the model is a concrete datatype with constructors EMPTY and INSERT. Reasons for this choice are discussed in the code. Also proved some extra theorems.
|
#
1eadaac4 |
|
07-Jul-2004 |
Konrad Slind <konrad.slind@gmail.com> |
Upgrades to ML code generation. It now works for numerals, although the results of a computation will be incomprehensible usually. Writing a prettyprinter needs to be done.
|
#
1d04a0ca |
|
07-Jul-2004 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
New treatment of abbreviations. Documentation still to be updated. Backwards compatibility illustrated in examples/lambda/standardisationScript and examples/arm6. New techniques and entry-points illustrated in core distribution and some of the lambda example scripts.
|
#
5293b523 |
|
23-Jun-2004 |
Konrad Slind <konrad.slind@gmail.com> |
Changing "prove" to store_thm so that the newly added theorems from Scott actually appear in the theory.
|
#
c1c39bc1 |
|
19-Jun-2004 |
Konrad Slind <konrad.slind@gmail.com> |
Adding a few theorems. Proved by Scott Owens.
|
#
9249ac55 |
|
01-Jun-2004 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
A couple of theorems about SUM_IMAGE, and a new (trivial) rewrite for GSPEC.
|
#
49d5951b |
|
01-Apr-2004 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
More automatic rewrites.
|
#
cbc8b2d3 |
|
18-Mar-2004 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Useful finite-ness results, including the converse of "the finite union of finite sets is finite" giving an equivalence for FINITE (BIGUNION P).
|
#
05d743ef |
|
21-Jan-2004 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Another very useful rewrite exported.
|
#
c485fb4b |
|
21-Jan-2004 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Export a useful rewrite.
|
#
a4dea4e9 |
|
11-Jan-2004 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
A change to make this proof renaming-independent; I don't see that this one would have ever worked with the standard kernel.
|
#
8e708da4 |
|
10-Dec-2003 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add a useful theorem about finiteness of images.
|
#
5b1fcd00 |
|
04-Nov-2003 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
A start on proving some theorems about the action of partitioning a set according to an equivalence relation. (Joe if you fancy hacking METIS_TAC, you might look into why it seems to do so miserably on those places in what I've checked in where PROVE_TAC is used. PROVE_TAC in these places takes a while to normalise, but having done so proves the goals quite quickly. METIS starts quickly but doesn't seem to get anywhere.)
|
#
1ec25bf7 |
|
21-Oct-2003 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Some new theorems; one just an old one recast to be more suitable for rewriting.
|
#
fb863eae |
|
03-Sep-2003 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Modify the add_listform function in line with a suggestion of Lockwood Morris's to provide slightly more flexibility in the way that list forms are pretty-printed. Previously, the format was fixed as <left-delimiter> el1 <sep> <a space> el2 <sep> <a space> ... Now, the spacing is more directly under user-control.
|
#
b6ab3df4 |
|
28-Jul-2003 |
Joe Hurd <joe@gilith.com> |
These files needed changing because of the new STRIP_TAC.
|
#
bb654e4b |
|
26-Jun-2003 |
Konrad Slind <konrad.slind@gmail.com> |
Many small changes, most associated with boolification or lifting.
|
#
eb978153 |
|
16-May-2003 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add a very useful automatic rewrite.
|
#
012ac47a |
|
10-Apr-2003 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Added a couple of extra rewrite exports.
|
#
bef52d80 |
|
01-Apr-2003 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
A proof of Koenig's Lemma, where the notion of a tree being finite is generalised to the notion of a reachable set being finite.
|
#
3688a3ce |
|
22-Nov-2002 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Prove some useful (trivial) theorems about GSPEC. Also shift definition of SET_SPEC_ss (simpset for handling x IN {y | ...}) to pred_setTheory itself (using adjoin_to_theory magic) so that loading pred_setTheory can automatically install it in srw_ss as the theory loads. (Preivously, you had to remember to also load pred_setLib.)
|
#
cfbbb1a5 |
|
04-Oct-2002 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Added another useful automatic rewrite.
|
#
a373c426 |
|
01-Oct-2002 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Realised that my particular application didn't want SUM_SET at all, but rather something that calculates something that looks a bit like the sum of the image of a function. E.g., you have a finite set of widgets and you want to know the sum of their weights. It's not right to write SUM_SET (IMAGE weight s) because this relies on the weight function being injective. Instead, you now write SUM_IMAGE weight s and I can redefine SUM_SET to be equal to SUM_IMAGE I. Someday I (or anyone else who fancies it) should prove that if f is injective, then SUM_SET (IMAGE f s) = SUM_IMAGE f s.
|
#
0dbcf4a2 |
|
27-Sep-2002 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Slight clean-up of SUM_SET work. In particular, there's a general result possible justifying recursion equations that look like: ITSET f (x INSERT s) b = f x (ITSET f s b) This is the FOLDR version, as opposed to the FOLDL version, or the recursing version rather than the accumulator version. Also define functions to get the minimum and maximum elements of sets of numbers. The former is just the LEAST quantifier. (Just realised that perhaps shouldn't even have a new constant for MIN_SET; could do it with overloading; but then the pretty-printing system would pick one or the other to be "the way" to print that constant, which could be confusing too. Dunno.
|
#
41bbe656 |
|
26-Sep-2002 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Proved that the condition on the function being iterated doesn't need to be quite AC; it can have a weaker condition instead.
|
#
6d444385 |
|
18-Sep-2002 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
More useful (but obvious) theorems about SUM_SET.
|
#
d5085a8c |
|
17-Sep-2002 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Proved that if you give ITSET an associative and commutative operator, then it gives you nice recursion equations (that don't feature CHOICE and REST). Used this to define a SUM_SET function that sums the elements of a finite set of numbers.
|
#
d25a77b8 |
|
05-Sep-2002 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Export of more obvious rewrites.
|
#
d6b08f6b |
|
16-Aug-2002 |
Konrad Slind <konrad.slind@gmail.com> |
Change to type of new_specification, and made it tell that parser about the introduced constants. Lots of knock-on (trivial) mods.
|
#
ce23af22 |
|
24-Jun-2002 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Added a couple of obvious rewrites for the stateful rewriter.
|
#
80f6f528 |
|
21-May-2002 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Made definition of BIGINTER more consistent with style of definition of BIGUNION.
|
#
7de970db |
|
21-May-2002 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Prompted by Konrad's useful change to the AC stuff in the simplifier, I have "fixed" a long-standing irritation in the associativity theorems in pred_setTheory: they're the wrong way round. All other associativity theorems in the system are oriented x _ (y _ z) = (x _ y) _ z, which is the direction that AC_CONV expects. So, I've put them right. The changes I had to make in pred_setScript are such that the proofs no longer depend on any particular orientation, so this could always be changed back without much grief. Elsewhere, probability is the only place in the core distribution where problems arose. There, and in the examples where similar things happened, I replaced all occurrences of {UNION,INTER}_ASSOC with GSYM {INTER,UNION}_ASSOC. I also fixed the m scripts in the examples/miller so that they cause a stop when they hit an error. Finally, I changed developers/build-examples to clean up in the miller directory before building. This is consistent with what is done for all of the other examples.
|
#
93e14f20 |
|
06-May-2002 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
* Added a small new theory about fixed points (least, and greatest) and monotone functions. * Added an export_rewrites clause to the end of pred_setScript. (No more having to write SIMP_TAC std_ss [IN_UNION, IN_DELETE, IN_SING,....]) * Added SET_SPEC_CONV to the stateful rewriter and also to the PRED_SET_ss simpset fragment. * Added BIGINTER constant to pred_setTheory; companion to BIGUNION.
|
#
d004806f |
|
02-May-2002 |
Konrad Slind <konrad.slind@gmail.com> |
Added a type abbreviation 'a set = 'a -> bool
|
#
17397522 |
|
02-May-2002 |
Konrad Slind <konrad.slind@gmail.com> |
Fixed bug in set conversions: the constant IN is no longer defined in pred_setTheory, but in boolTheory, for some reason. Also added rudimentary syntax support for sets.
|
#
90587787 |
|
21-Apr-2002 |
Konrad Slind <konrad.slind@gmail.com> |
Miscellaneous cosmetic changes.
|
#
eb74b774 |
|
20-Nov-2001 |
Joe Hurd <joe@gilith.com> |
Added the definition count n = {m | m < n} as a canonical n-element set, and proved the obvious theorems.
|
#
d22c71a0 |
|
16-Oct-2001 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Removed IN as a constant from pred_set theory now that it's in bool. Somewhat to my surprise, things built anyway, but it was distracting seeing the messages complaining about the ambigous grammars and the overloading resolution. (I shouldn't be surprised of course, this is the whole point of all the Kananaskis work!)
|
#
b3452490 |
|
10-Oct-2001 |
Joe Hurd <joe@gilith.com> |
Added the definition of set complementation (COMPL) and some related theorems.
|
#
805fdd4e |
|
13-Sep-2001 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Removed gratuitous incompatibility with Taupo-6 in type of set_fixity; its type is now string -> fixity -> unit, rather than (string * fixity) -> unit.
|
#
75e6bfb9 |
|
18-Jun-2001 |
Konrad Slind <konrad.slind@gmail.com> |
Changing arithLib to numLib.
|
#
0f981b15 |
|
12-Feb-2001 |
Konrad Slind <konrad.slind@gmail.com> |
Moved to bagLib/containerScript so that I could do some stuff with bags there.:;
|
#
56fbf2ba |
|
24-Nov-2000 |
Konrad Slind <konrad.slind@gmail.com> |
Added ITSET (fold for sets) to pred_setScript. Added a tiny theory relating sets and lists. Should probably also add bags to this.
|
#
857eaf01 |
|
22-Nov-2000 |
Konrad Slind <konrad.slind@gmail.com> |
Now builds in Kan.0.
|
#
97555632 |
|
14-Nov-2000 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Kananaskis compatibility.
|
#
c8e94391 |
|
21-Jun-2000 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Strengthening of UNWIND_FORALL_CONV requires minor alteration to one proof.
|
#
6d875bfc |
|
02-Jun-2000 |
Konrad Slind <konrad.slind@gmail.com> |
Not sure what this is.
|
#
c3ad41f0 |
|
09-May-2000 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
I realised on porting this theory to the companion theory of sets as their own datatype, that my definition of BIGUNION wasn't abstract enough. In particular, it assumed the pred_set nature. I fixed the proof in setScript, and have moved the proof back to pred_set too. Now all of the new material in both script files is identical.
|
#
ca2b91cd |
|
09-May-2000 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
A couple of new results: BIGUNION (x INSERT S) = x UNION (BIGUNION S) and that the finite union of finite sets is finite.
|
#
ccc18090 |
|
08-May-2000 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
A complete induction principle for finite sets. Finite-ness of cross products completely characterised. Some other minor results.
|
#
3c51478d |
|
05-May-2000 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Added treatment of cross products and big union, and some new finite-ness theorems (due to Konrad).
|
#
d99459f6 |
|
06-Aug-1999 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Updates due to new pretty-printing support.
|
#
9b6ca0fd |
|
05-Jul-1999 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Modified to let back old style conditional expressions (given alteration to parsing code's construction of precedence matrix).
|
#
0058df84 |
|
28-Jun-1999 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Fixed to bring it up to date with Taupo release 0. (Changes have come across from parse_branch development.)
|
#
58841e67 |
|
29-Apr-1999 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Initial revision
|