tactic.mk_assumption_set

Builds a collection of lemmas for use in the backtracking search in solve_by_elim.

tactic.solve_by_elim_aux

The internal implementation of solve_by_elim, with a limiting counter.

tactic.by_elim_opt

Configuration options for solve_by_elim.

tactic.solve_by_elim

solve_by_elim repeatedly tries applying a lemma from the list of assumptions (passed via the by_elim_opt argument), recursively operating on any generated subgoals. It succeeds only if it discharges the first goal (or with backtrack_all_goals := tt, if it discharges all goals.)

tactic.interactive.apply_assumption

apply_assumption looks for an assumption of the form ... → ∀ _, ... head where head matches the current goal.

alternatively, when encountering an assumption of the form sg₀ ¬ sg₁, after the main approach failed, the goal is dismissed and sg₀ and sg₁ are made into the new goal.

optional arguments:

tactic.interactive.solve_by_elim

solve_by_elim calls apply on the main goal to find an assumption whose head matches and then repeatedly calls apply on the generated subgoals until no subgoals remain, performing at most max_rep recursive steps.

solve_by_elim discharges the current goal or fails.

solve_by_elim performs back-tracking if apply_assumption chooses an unproductive assumption.

By default, the assumptions passed to apply_assumption are the local context, rfl, trivial, congr_fun and congr_arg.

solve_by_elim [h₁, h₂, ..., hᵣ] also applies the named lemmas.

`solve_by_elim with attr₁ ... attrᵣ also applied all lemmas tagged with the specified attributes.

solve_by_elim only [h₁, h₂, ..., hᵣ] does not include the local context, rfl, trivial, congr_fun, or congr_arg unless they are explicitly included.

solve_by_elim [-id] removes a specified assumption.

solve_by_elim* tries to solve all goals together, using backtracking if a solution for one goal makes other goals impossible.

optional arguments: