Re: [isabelle] Do these tactics exist?

Don’t overlook blast, which is a little more flexible in its use of inference rules and can even cope with reasonable amounts of transitivity. However, it doesn’t do simplification at all, so simplify in a previous step.


On 11 Aug 2014, at 13:00, Holden Lee <hl422 at> wrote:

>    A lot of proofs I have to do are methodical, but to my knowledge can't
> be done by auto, because auto doesn't have the right control structure.
> Here are some tactics/controls which would be useful to me if they could
> work with auto - I'd be interested to know whether they exist, and if not,
> could someone point me to how I could code them in?
>   - "auto subst!: A" where "A is P x ==> f(x)=g(x)" Run auto, but every
>   time you see f(x), replace it by g(x) and add the subgoal P x.
>   - "conditional substitution" - Same as above but under conditions. Given
>   a rule "P x ==> f(x)=g(x)" and a congruence-type rule "!! x. Q x -->
>   f(x)=g(x)  ==> F(f(x),x)=F(g(x),x)" (for example, \sum_{x\in A} f(x) =
>   \sum_{x\in A} g(x) when for all x\in A, f(x)=g(x)), then replace F(f(x),x)
>   with F(g(x),x) and add the condition "Q x ==> P x" as a goal to be proved.
>   - "auto intro a rule only if it succeeds directly (cf. Hint Immediate in
>   Coq)" Given a rule P x ==> Q x ==> R x, if R x is in the goal, see if P x
>   and Q x are in the premises. If so, solve it. If not, do not introduce P x,
>   Q x. (Use case: rules like A\subseteq B ==> B\subseteq C ==> A\subseteq C:
>   marking this as a intro rule would cause infinite regress.)
>   - Don't go deeper than depth x - so prevent it from going down an
>   infinite branch.
> Cheers,
> Holden

This archive was generated by a fusion of Pipermail (Mailman edition) and MHonArc.