#
e25cb472 |
|
03-Sep-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Implement and document new irule_at tactic
|
#
74964143 |
|
09-Aug-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Move some of the machinery behind BasicProvers.VAR_EQ_TAC to Tactic
|
#
e74b9be8 |
|
10-Jul-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Extend drule family with rev_ and _at options rev_ causes search for assumptions to start at opposite end of list (i.e., uses last{_x,}_assum), and _at allows specification of which hypothesis in the implicational theorem to match against.
|
#
1f5a1e14 |
|
29-Jun-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Promote mp_then and resolve_then to be exported by Tactic Keep their implementations in separate files for the sake of self-containedness.
|
#
d2d6d792 |
|
21-May-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Change irule to not include a rpt conj_tac effect Closes #465
|
#
f44b2f43 |
|
18-Feb-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Implement & document controlled resolution tactics (drule & friends)
|
#
870a67c3 |
|
22-Jan-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Implement impl_{keep_,}tac with new provehyp_then primitive The underlying primitive allows obvious generalisations of the impl tactics, such as pulling from assumptions and passing the resulting theorems to different continuation thm-tactics.
|
#
baf6c825 |
|
19-Oct-2017 |
Mario [Castelán Castro] <marioxcc@example.org> |
Add lowercase alias of “DISCH_TAC”.
|
#
4888f523 |
|
15-Oct-2017 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Remove eqtype declaration for term type
|
#
e42271db |
|
23-Aug-2017 |
Heiko Becker <hbecker@mpi-sws.org> |
Change behavior of MATCH_MP_TAC to fail only when being applied to an actual goal-state, instead of failing when given the first parameter
|
#
ad0c4d49 |
|
25-Jun-2017 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Move Q.ID_EX_TAC to Tactic. ID_EX_TAC doesn't take any arguments, let alone a quotation, so doesn't belong in Q. Closes #359
|
#
4a68817b |
|
15-Jul-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Fix build errors prompted by goal_assum
|
#
115e3ce5 |
|
21-Mar-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Define part_match_exists_tac This tactic allows users to specify bindings for existential variables in goals by providing a term to match against some part of the body under the existentials.
|
#
c7e38180 |
|
20-Mar-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Define tactics to apply implication-L rule backwards Rule is sequent calculus's: Γ ⊢ P Γ, Q ⊢ R ---------------------- Γ, P ==> Q ⊢ R Implementation assumes that goal is of the form (P ==> Q) ==> R (rather than with P ==> Q in the assumptions). The impl_keep_tac version also adds P as an assumption to the second sub-goal. (From CakeML.)
|
#
332af513 |
|
13-Mar-2016 |
Brian Campbell <bacam@z273.org.uk> |
Make COND_CASES_TAC handle repeated use of guard properly
|
#
5b282aae |
|
06-Dec-2015 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
More moving lcsymtacs implementations elsewhere Eventually lcsymtacs will just be a bunch of 'open' declarations, and then people won't bother to include it at all.
|
#
48bce6f2 |
|
04-Dec-2015 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Move some tactics from lcsymtacs to Tactic{,al} As per Github issue #274
|
#
345e1213 |
|
25-Nov-2015 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Expose and document IRULE_CANON. This function is similar to MP_CANON (which is undocumented), and normalises theorems to make them usable as introduction rules (as is done by the irule tactic). Also tweak irule's documentation to better reflect this implementation. Finally, give irule an alias in Tactic as IRULE_TAC.
|
#
63eb9911 |
|
11-Nov-2015 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Remove some code now unused (as of 934bff32ef1)
|
#
06752ed9 |
|
11-Nov-2015 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Tweak order of subgoal-conjuncts produced by irule Gets uses in sortingTheory to work again
|
#
934bff32 |
|
11-Nov-2015 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Fix bug in irule found by Jeremy. Wasn't collapsing groups of assumptions together in terms of their shared free variables correctly.
|
#
ccf910c6 |
|
05-Nov-2015 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Fix irule to handle input thms with hyps better As per selftests. Other possible differences will be in ordering of new subgoal, and distribution of existentials over those subgoals.
|
#
b54e6e27 |
|
02-May-2015 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
new irule, order of new subgoals is consistent, regardless of how the substitution may change the internal order of hypothesis in the argument theorem also new tactical ADD_SGS_TAC - like VALIDATE but new terms to be proved need to be specified
|
#
bc9e1177 |
|
05-Apr-2015 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
trivial simplification - uses match_term, not match_terml
|
#
d38bfe3c |
|
31-Mar-2015 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
new tactic RULE_L_ASSUM_TAC like RULE_ASSUM_TAC but f produces list of theorems
|
#
f63ebdcc |
|
29-Mar-2015 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
change irule to do GEN_ALL to argument theorem first links from help pages for MATCH_{ACCEPT,MP}_tac to [prim_]irule
|
#
c3e3e54e |
|
25-Mar-2015 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Delete trailing whitespace in src/
|
#
36edf2ba |
|
25-Mar-2015 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
renamed prim_irule_tac to prim_irule
|
#
c9dd804e |
|
25-Mar-2015 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
Tactic.irule, also prim_irule_tac and Drule.SPEC_UNDISCH_EXL
|
#
eccd9ac2 |
|
11-Jan-2015 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
infix THEN_LT - hopefully in the right place now see comments on https://github.com/HOL-Theorem-Prover/HOL/pull/221
|
#
86638303 |
|
31-Dec-2014 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
infix declaration for THEN_LT in Tactic.sml not sure why this is needed - builds here without it, but not on GitHub; and clearly not needed for THEN in Tactic.sml
|
#
d0041320 |
|
31-Dec-2014 |
Jeremy Dawson <jeremy@cecs.anu.edu.au> |
re-implement CONJ_ASM1_TAC, CONJ_ASM2_TAC using USE_SG_THEN now one-line implementation of these tactics
|
#
0e21ee01 |
|
14-Oct-2014 |
Piotr Trojanek <piotr.trojanek@gmail.com> |
HO_MATCH_MP_TAC: new documentation and fix of failure report
|
#
e5e35f62 |
|
18-Feb-2013 |
Vincent Aravantinos <vincent@encs.concordia.ca> |
Added HINT_EXISTS_TAC.
|
#
c036c199 |
|
20-Jul-2012 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Tidy-up formatting of some src/1 code.
|
#
a0f6912c |
|
13-Jul-2012 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Tidy up some code under src/1. See commit ad9b041.
|
#
efea4a13 |
|
01-Jun-2011 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Move bvk_find_term (used in DEEP_INTROk_TAC) to HolKernel. Document it and the other find_term functions from HolKernel.
|
#
8a179c38 |
|
01-Jun-2011 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Implement & use a generic tactic to apply "deep" introduction rules. A "deep" intro rule is one that looks like sideconds ==> P (someterm) The P is a variable and so the P (someterm) pattern can be seen as a way to match any term that has someterm within it as a sub-term. Example rules of this form are boolTheory.SELECT_ELIM_THM, whileTheory.LEAST_ELIM and optionTheory.some_intro. (It's a shame the names for the older theorems feature "ELIM" as substrings; these are clearly introduction rules.) We can't use normal first-order matching, nor higher-order patterns to match such patterns. Instead, the code performs a search through the term, looking for first-order matches of someterm. In both LEAST_ELIM_TAC and SELECT_ELIM_TAC, the search was done by find_terms; the new implementations of these functions work through the term in a different, but now well-specified order: top-down, left-to-right. If there are multiple matches in a term, and it makes a difference what one you get, you should use DEEP_INTROk_TAC, which takes a tactic 'continuation'. If this tactic fails with a HOL_ERR when applied to the resulting goal-state, then DEEP_INTROk_TAC tries again on a different sub-term, if there is one. I will write proper documentation for this all shortly.
|
#
1bc9f344 |
|
13-Jan-2011 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Change src/bool to src/1 as a prelude to experimentation!
|