Proof automation based on the proof search on $\mathbf{LK}$ #
theorem
LO.Meta.ClProver.Theorems.to_provable
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(Ļ : F)
(h : Entailment.TwoSided š¢ [] [Ļ])
:
theorem
LO.Meta.ClProver.Theorems.rotate_right
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(Ī Ī : List F)
(Ļ : F)
(hĻ : Entailment.TwoSided š¢ Ī (Ī ++ [Ļ]))
:
Entailment.TwoSided š¢ Ī (Ļ :: Ī)
theorem
LO.Meta.ClProver.Theorems.rotate_left
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(Ī Ī : List F)
(Ļ : F)
(hĻ : Entailment.TwoSided š¢ (Ī ++ [Ļ]) Ī)
:
Entailment.TwoSided š¢ (Ļ :: Ī) Ī
theorem
LO.Meta.ClProver.Theorems.add_hyp
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(šÆ : S)
(s : šÆ āŖÆ š¢)
(Ī Ī : List F)
(Ļ : F)
(hĻ : šÆ ⢠Ļ)
(h : Entailment.TwoSided š¢ (Ļ :: Ī) Ī)
:
Entailment.TwoSided š¢ Ī Ī
theorem
LO.Meta.ClProver.Theorems.right_closed
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(Ī Ī : List F)
(Ļ : F)
(h : Ļ ā Ī)
:
Entailment.TwoSided š¢ Ī (Ļ :: Ī)
theorem
LO.Meta.ClProver.Theorems.left_closed
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(Ī Ī : List F)
(Ļ : F)
(h : Ļ ā Ī)
:
Entailment.TwoSided š¢ (Ļ :: Ī) Ī
theorem
LO.Meta.ClProver.Theorems.verum_right
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(Ī Ī : List F)
:
Entailment.TwoSided š¢ Ī (⤠:: Ī)
theorem
LO.Meta.ClProver.Theorems.falsum_left
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(Ī Ī : List F)
:
Entailment.TwoSided š¢ (ā„ :: Ī) Ī
theorem
LO.Meta.ClProver.Theorems.falsum_right
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(Ī Ī : List F)
(h : Entailment.TwoSided š¢ Ī Ī)
:
Entailment.TwoSided š¢ Ī (ā„ :: Ī)
theorem
LO.Meta.ClProver.Theorems.verum_left
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(Ī Ī : List F)
(h : Entailment.TwoSided š¢ Ī Ī)
:
Entailment.TwoSided š¢ (⤠:: Ī) Ī
theorem
LO.Meta.ClProver.Theorems.and_right
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(Ī Ī : List F)
(Ļ Ļ : F)
(hĻ : Entailment.TwoSided š¢ Ī (Ī ++ [Ļ]))
(hĻ : Entailment.TwoSided š¢ Ī (Ī ++ [Ļ]))
:
Entailment.TwoSided š¢ Ī (Ļ ā Ļ :: Ī)
theorem
LO.Meta.ClProver.Theorems.or_left
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(Ī Ī : List F)
(Ļ Ļ : F)
(hĻ : Entailment.TwoSided š¢ (Ī ++ [Ļ]) Ī)
(hĻ : Entailment.TwoSided š¢ (Ī ++ [Ļ]) Ī)
:
Entailment.TwoSided š¢ (Ļ ā Ļ :: Ī) Ī
theorem
LO.Meta.ClProver.Theorems.or_right
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(Ī Ī : List F)
(Ļ Ļ : F)
(h : Entailment.TwoSided š¢ Ī (Ī ++ [Ļ, Ļ]))
:
Entailment.TwoSided š¢ Ī (Ļ ā Ļ :: Ī)
theorem
LO.Meta.ClProver.Theorems.and_left
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(Ī Ī : List F)
(Ļ Ļ : F)
(h : Entailment.TwoSided š¢ (Ī ++ [Ļ, Ļ]) Ī)
:
Entailment.TwoSided š¢ (Ļ ā Ļ :: Ī) Ī
theorem
LO.Meta.ClProver.Theorems.neg_right
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(Ī Ī : List F)
(Ļ : F)
(h : Entailment.TwoSided š¢ (Ī ++ [Ļ]) Ī)
:
Entailment.TwoSided š¢ Ī (ā¼Ļ :: Ī)
theorem
LO.Meta.ClProver.Theorems.neg_left
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(Ī Ī : List F)
(Ļ : F)
(h : Entailment.TwoSided š¢ Ī (Ī ++ [Ļ]))
:
Entailment.TwoSided š¢ (ā¼Ļ :: Ī) Ī
theorem
LO.Meta.ClProver.Theorems.imply_right
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(Ī Ī : List F)
(Ļ Ļ : F)
(h : Entailment.TwoSided š¢ (Ī ++ [Ļ]) (Ī ++ [Ļ]))
:
Entailment.TwoSided š¢ Ī ((Ļ š” Ļ) :: Ī)
theorem
LO.Meta.ClProver.Theorems.imply_left
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(Ī Ī : List F)
(Ļ Ļ : F)
(hĻ : Entailment.TwoSided š¢ Ī (Ī ++ [Ļ]))
(hĻ : Entailment.TwoSided š¢ (Ī ++ [Ļ]) Ī)
:
Entailment.TwoSided š¢ ((Ļ š” Ļ) :: Ī) Ī
theorem
LO.Meta.ClProver.Theorems.iff_right
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(Ī Ī : List F)
(Ļ Ļ : F)
(hr : Entailment.TwoSided š¢ (Ī ++ [Ļ]) (Ī ++ [Ļ]))
(hl : Entailment.TwoSided š¢ (Ī ++ [Ļ]) (Ī ++ [Ļ]))
:
Entailment.TwoSided š¢ Ī ((Ļ š” Ļ) :: Ī)
theorem
LO.Meta.ClProver.Theorems.iff_left
{F : Type u_1}
[LogicalConnective F]
[DecidableEq F]
{S : Type u_2}
[Entailment S F]
(š¢ : S)
[Entailment.Cl š¢]
(Ī Ī : List F)
(Ļ Ļ : F)
(hr : Entailment.TwoSided š¢ Ī (Ī ++ [Ļ, Ļ]))
(hl : Entailment.TwoSided š¢ (Ī ++ [Ļ, Ļ]) Ī)
:
Entailment.TwoSided š¢ ((Ļ š” Ļ) :: Ī) Ī
Equations
- LO.Meta.ClProver.cl_prover = Lean.ParserDescr.node `LO.Meta.ClProver.cl_prover 1024 (Lean.ParserDescr.nonReservedSymbol "cl_prover" false)
Instances For
- levelF : Lean.Level
- levelS : Lean.Level
- levelE : Lean.Level
- F : Q(Type udummy._uniq.39)
- LC : Q(LogicalConnective unknown_1)
- DC : Q(DecidableEq unknown_1)
- S : Q(Type udummy._uniq.45)
- E : Q(Entailment unknown_1 unknown_2)
- š¢ : Q(unknown_1)
- CL : Q(Entailment.Cl unknown_5)
Instances For
Apply the function
n : ā {F} [LogicalConnective F] [DecidableEq F] {S} [Entailment S F] {š¢} [Entailment.Cl š¢], _ to the
implicit parameters in the context, and the given list of arguments.
Equations
Instances For
Instances For
def
LO.Meta.ClProver.getGoalProvable
(e : Q(Prop))
:
Lean.MetaM
((c : Context) Ć
have a := c.F;
Q(Ā«$aĀ»))
Instances For
@[reducible, inline]
Equations
Instances For
Equations
- LO.Meta.ClProver.litToExpr Ļ = do let c ā read pure (LO.Meta.Litform.toExpr c.LC Ļ)
Instances For
Equations
- LO.Meta.ClProver.exprToLit e = do let c ā read liftM (LO.Meta.Litform.denote c.LC e)
Instances For
Equations
- Ī.toExprList = do let c ā read pure (List.map (LO.Meta.Litform.toExpr c.LC) Ī)
Instances For
Equations
- LO.Meta.ClProver.exprListToLitList l = do let c ā read liftM (List.mapM (LO.Meta.Litform.denote c.LC) l)
Instances For
Equations
- Ī.toExpr = do let c ā read pure (Qq.toQList (List.map (LO.Meta.Litform.toExpr c.LC) Ī))
Instances For
Equations
- LO.Meta.ClProver.verumRight Ī Ī = do let eĪ ā Ī.toExpr let eĪ ā Ī.toExpr LO.Meta.ClProver.iapp `LO.Meta.ClProver.Theorems.verum_right #[eĪ, eĪ]
Instances For
Equations
- LO.Meta.ClProver.falsumRight Ī Ī e = do let eĪ ā Ī.toExpr let eĪ ā Ī.toExpr LO.Meta.ClProver.iapp `LO.Meta.ClProver.Theorems.falsum_right #[eĪ, eĪ, e]
Instances For
Equations
- LO.Meta.ClProver.negRight Ī Ī Ļ e = do let eĪ ā Ī.toExpr let eĪ ā Ī.toExpr let eĻ ā LO.Meta.ClProver.litToExpr Ļ LO.Meta.ClProver.iapp `LO.Meta.ClProver.Theorems.neg_right #[eĪ, eĪ, eĻ, e]
Instances For
Equations
- LO.Meta.ClProver.verumLeft Ī Ī e = do let eĪ ā Ī.toExpr let eĪ ā Ī.toExpr LO.Meta.ClProver.iapp `LO.Meta.ClProver.Theorems.verum_left #[eĪ, eĪ, e]
Instances For
Equations
- LO.Meta.ClProver.falsumLeft Ī Ī = do let eĪ ā Ī.toExpr let eĪ ā Ī.toExpr LO.Meta.ClProver.iapp `LO.Meta.ClProver.Theorems.falsum_left #[eĪ, eĪ]
Instances For
Equations
- LO.Meta.ClProver.negLeft Ī Ī Ļ e = do let eĪ ā Ī.toExpr let eĪ ā Ī.toExpr let eĻ ā LO.Meta.ClProver.litToExpr Ļ LO.Meta.ClProver.iapp `LO.Meta.ClProver.Theorems.neg_left #[eĪ, eĪ, eĻ, e]
Instances For
Equations
- LO.Meta.ClProver.toProvable Ļ e = LO.Meta.ClProver.iapp `LO.Meta.ClProver.Theorems.to_provable #[Ļ, e]
Instances For
Equations
- One or more equations did not get rendered due to their size.
- LO.Meta.ClProver.prover k_2.succ false Ī [] = LO.Meta.ClProver.prover k_2 true Ī []
- LO.Meta.ClProver.prover k_2.succ true [] Ī = LO.Meta.ClProver.prover k_2 false [] Ī
Instances For
- levelF : Lean.Level
- levelS : Lean.Level
- levelE : Lean.Level
- F : Q(Type udummy._uniq.28)
- S : Q(Type udummy._uniq.29)
- E : Q(Entailment unknown_1 unknown_2)
- š¢ : Q(unknown_1)
- Ļ : Q(unknown_1)
- proof : Q(unknown_4 ⢠unknown_5)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.