History log of /seL4-l4v-master/HOL4/src/1/Tactical.sig
Revision Date Author Comments
# e86e6d62 30-Apr-2019 Michael Norrish <Michael.Norrish@nicta.com.au>

Implement machinery to check that tactic results change acceptably

Used to implement checks that h.o. redexes don't remain, or have
decreased in count.

This is progress towards implementation of github issue #680.


# f969d86b 05-Oct-2017 Andreas Lööw <AndreasLoow@users.noreply.github.com>

Various doc fixes


# 468179c5 06-Sep-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Implement line-number reporting for failing THEN1/>-

This relies on a somewhat disgusting quotation filter hack which
replaces occurrences of >-/THEN1 in line with the following pattern:

tac1 >- tac2 - - - > tac1 >>- linenumber ?? tac2

This relies on >>- and ?? being left-associative, which is how they
are defined. The definition of ?? is

fun f ?? x = f x

The linenumber is inserted by the quotation filter, which tracks this
naturally.


# c4baf6cc 17-Jul-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Provide access to more switches when parsing in context

In particular, allow setting of Feedback traces which will be used
when parsing of quotations occurs.

This allows Q.PAT_ASSUM to be made quiet about inventing type
variables. This is deemed desirable in github issue #425. (I'm not
100% sure now of this, but hey.)

Closes #425


# 49bb6a02 28-Jul-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Provide "typed" parsing-in-context entry-points

This allows

QTY_TAC ty tac q

to parse q in the context of the goal and also require the resulting
term to have the provided type. The resulting term is then passed to
tac, as per Q_TAC>


# fa81d70b 28-Jul-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Rename pat_assum to pat_x_assum; provide pat_assum

To be consistent with naming conventions elsewhere, change the name of
qpat_assum (and PAT_ASSUM, and Q.PAT_ASSUM) to include an extra _x_ (or
_X_), indicating that the matching assumption is pulled out of the
assumption list.

Use the old names to provide a version that doesn't pull the assumption
out of the list.

Again, seeking consistency with other similar tactics, make variable
names that appear in the pattern and the goal be forced to have the type
that they have in the goal.


# 4a68817b 15-Jul-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Fix build errors prompted by goal_assum


# d95230c8 15-Jul-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Put goal_assum into Tactical's signature


# e28c677a 20-Mar-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Define special backtracking cases of pat_assum

In particular, the "pattern" is a single term or quotation that has to
either be the head constant of the assumption or the head of the lhs of
the assumption. Unlike pat_assum as it stands currently, the behaviour
backtracks (à la first_assum) if the theorem-tactic doesn't succeed with
the first assumption found.

Versions come in "copy assumption" and "cut assumption" versions, just
like first_assum and first_x_assum.


# 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


# e7f4d74a 16-Nov-2015 Michael Norrish <Michael.Norrish@nicta.com.au>

Move lcsymtacs functions to natural homes

For example, we do not need to have >> in lcsymtacs; it might as be in
Tactical. The ultimate aim is to do away with lcsymtacs entirely.

This is work towards github issue #274


# bd77b8fb 20-Oct-2015 Michael Norrish <Michael.Norrish@nicta.com.au>

Delete trailing whitespace


# 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


# 32bf1e49 02-Feb-2015 Piotr Trojanek <piotr.trojanek@gmail.com>

extra semicolons removed from (some) .sig files


# ca5c8d49 31-Dec-2014 Jeremy Dawson <jeremy@cecs.anu.edu.au>

new list-tactic USE_SG_THEN

makes one subgoal available in the proof of another


# 79fc3d40 31-Dec-2014 Jeremy Dawson <jeremy@cecs.anu.edu.au>

relaxing type constraint for THEN and THENL

to permit
val THEN : list_tactic * tactic -> list_tactic
val THENL : list_tactic * tactic list -> list_tactic
as well as the usual types


# e8e1f70e 20-Dec-2014 Jeremy Dawson <jeremy@cecs.anu.edu.au>

GEN_VALIDATE(_LT) - flag for adding new subgoals in any event

GEN_VALIDATE false is like VALIDATE, but adds subgoals for the assumptions
of the theorem produced by the justification, regardless of whether they
are among the assumptions of the goal. Advantage of this is that
GEN_VALIDATE false (ACCEPT_TAC th) produces predictable subgoals,
which may help in coding compound tactics


# 621c1ebb 13-Dec-2014 Jeremy Dawson <jeremy@cecs.anu.edu.au>

VALIDATE and VALIDATE_LT

If tac (ltac) is invalid due to proving theorems with extra assumptions,
VALIDATE tac and VALIDATE_LT ltac make the tactic valid by returning extra
subgoals to prove the extra assumptions


# 876ff199 11-Dec-2014 Jeremy Dawson <jeremy@cecs.anu.edu.au>

expand_list to interactively work on a list of subgoals

also Tactical.VALID_LT, to check that a list-tactical is valid
(expand_list checks validity, expand_listf doesn't)

also abbreviations elt, eall, eta, enth to apply (list-)tactic to subgoal(s)


# 8d315d0c 09-Dec-2014 Michael Norrish <michael.norrish@nicta.com.au>

Delete trailing whitespace in src/

This needs doing periodically, and is best done to a whole bunch of files
at once.


# 279c6472 01-Dec-2014 Jeremy Dawson <jeremy@cecs.anu.edu.au>

replacing code for THEN and THENL using ALLGOALS and TACS_TO_LT

also defines NULL_OK_LT to implement change to THENL
(see https://github.com/HOL-Theorem-Prover/HOL/issues/214 )


# 7e336374 17-Nov-2014 Jeremy Dawson <jeremy@cecs.anu.edu.au>

list_tactic concept

introduce list_tactic - works on a list of goals, not a single goal
THEN_LT (tac1, ltac2 : list_tactic),
A tactical that applies ltac2 to the list of subgoals resulting from tac1
TACS_TO_LT (tac2l: tactic list) : list_tactic
ALLGOALS - A list_tactic which applies a given tactic to all goals
ALL_LT - always succeeds
NTH_GOAL - applies tactic to nth goal of list
REVERSE_LT - A list_tactic that reverses a list of subgoals
SPLIT_LT - apply two list-tactics, one to first n subgoals,
the other to the rest
ROTATE_LT - rotate the list of subgoals by n positions


# d5f20b85 12-Aug-2013 Ramana Kumar <ramana@member.fsf.org>

Add LAST_ASSUM and LAST_X_ASSUM tactics

like first_assum and first_x_assum, but work from the other end of the
assumption list


# 1bc9f344 13-Jan-2011 Michael Norrish <Michael.Norrish@nicta.com.au>

Change src/bool to src/1 as a prelude to experimentation!