Expr helpers for the inclusion tactic #
This file defines helpers for matching or building certain expressions that are used in the
core of the inclusion tactic.
Given expressions x : xType, s : setType, and toSetInst : ToSet setType xType, create
the expression x ∈ s.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given iExpr : IExpr and set : iExpr.iType.setType, create the expression
iExpr.expr ∈ set.
Equations
Instances For
Given
· source : iVar.type.setType,
· outputType : IType,
· cover : Cover iVar.type.setType iVar.type.elemType,
· coarsen : Coarsen outputType.setType outputType.elemType, and
· inclusion : iVar.type.setType → outputType.setType,
create the expression cover.coverMap source inclusion : outputType.setType.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given
· a source inclusion body for iVar,
· output : IExpr,
· cover : Cover iVar.type.setType iVar.type.elemType,
· coarsen : Coarsen output.iType.setType output.iType.elemType,
· inclusion : iVar.type.setType → output.iType.setType, and
· proof : ∀ s, iVar.expr ∈ s → output.expr ∈ inclusion s,
create a proof of output.expr ∈ cover.coverMap source.inclusionBody inclusion.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given iType : IType, synthesize an expression of type
Coarsen iType.setType iType.elemType.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given iType : IType, refiner : Refine iType.setType iType.elemType, and expressions
left right : iType.setType, create the expression refiner.refine left right.
Equations
Instances For
Given iType : IType, synthesize an expression of type
Refine iType.setType iType.elemType.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given iType : IType and univ : Univ iType.setType iType.elemType, create the expression
univ.univ : iType.setType.
Equations
Instances For
Given iExpr : IExpr and univ : Univ iExpr.iType.setType iExpr.iType.elemType, create a
proof of iExpr.expr ∈ univ.univ.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given iType : IType, synthesize an expression of type Univ iType.setType iType.elemType.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given an expression b : IntervalBool, create the expression proving b = b.
Equations
- Inclusion.mkIntervalBoolRefl b = Lean.mkApp2 (Lean.mkConst `Eq.refl [Lean.Level.zero.succ]) (Lean.mkConst `Inclusion.IntervalBool) b
Instances For
Given an ExprInclusion inc for goal, and a proof
inclusionProof : inc.inclusion = IntervalBool.true create a proof of goal.
Equations
- inc.mkGoalProof goal inclusionProof = Lean.mkAppN (Lean.mkConst `Inclusion.true_of_mem_intervalBool_eq_true) #[goal, inc.inclusion, inc.proof, inclusionProof]