mathlib documentation

tactic.omega.find_ees

structure omega.ee_state  :
Type

The state of equality elimination proof search. eqs is the list of equality constraints, and each t ∈ eqs represents the constraint 0 = t. Similarly, les is the list of inequality constraints, and each t ∈ eqs represents the constraint 0 < t. ees is the sequence of equality elimination steps that have been used so far to obtain the current set of constraints. The list ees grows over time until eqs becomes empty.

Instances for omega.ee_state
@[protected, instance]
@[reducible]
meta def omega.eqelim (α : Type) :
Type
meta def omega.abort {α : Type} :

Get the current list of equality constraints.

Get the current list of inequality constraints.

Get the current sequence of equality elimiation steps.

Update the list of equality constraints.

Update the list of inequality constraints.

Update the sequence of equality elimiation steps.

Add a new step to the sequence of equality elimination steps.

Return the first equality constraint in the current list of equality constraints. The returned constraint is 'popped' and no longer available in the state.

meta def omega.run {α : Type} (eqs les : list omega.term) (r : omega.eqelim α) :
meta def omega.ee_commit {α β : Type} (t1 : omega.eqelim α) (t2 : omega.eqelim β) (t3 : α → omega.eqelim β) :

If t1 succeeds and returns a value, 'commit' to that choice and run t3 with the returned value as argument. Do not backtrack to try t2 even if t3 fails. If t1 fails outright, run t2.

def omega.gcd  :

GCD of all elements of the list.

Equations

GCD of all coefficients in a term.

Divide a term by an integer if the integer divides the constant component of the term. It is assumed that the integer also divides all coefficients of the term.

If list has a nonzero element, return the minimum element (by absolute value) with its index. Otherwise, return none.

Find and return the smallest coefficient (by absolute value) in a term, along with the coefficient's variable index and the term itself. If the coefficient is negative, negate both the coefficient and the term before returning them.

Find an appropriate equality elimination step for the current state and apply it.

Find and return the sequence of steps for eliminating all equality constraints in the current state.

Given a linear constrain clause, return a list of steps for eliminating its equality constraints.