@[instance_reducible]
Equations
@[instance_reducible]
Equations
- Inference.instDecidableEqStat.decEq (Inference.Stat.var a) (Inference.Stat.var b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Inference.instDecidableEqStat.decEq (Inference.Stat.var a) a_1.not = isFalse ⋯
- Inference.instDecidableEqStat.decEq (Inference.Stat.var a) (a_1.imp a_2) = isFalse ⋯
- Inference.instDecidableEqStat.decEq a.not (Inference.Stat.var a_1) = isFalse ⋯
- Inference.instDecidableEqStat.decEq a.not b.not = if h : a = b then h ▸ have inst := Inference.instDecidableEqStat.decEq a a; isTrue ⋯ else isFalse ⋯
- Inference.instDecidableEqStat.decEq a.not (a_1.imp a_2) = isFalse ⋯
- Inference.instDecidableEqStat.decEq (a.imp a_1) (Inference.Stat.var a_2) = isFalse ⋯
- Inference.instDecidableEqStat.decEq (a.imp a_1) a_2.not = isFalse ⋯
- Inference.instDecidableEqStat.decEq (a.imp a_1) (b.imp b_1) = if h : a = b then h ▸ have inst := Inference.instDecidableEqStat.decEq a a; have inst := Inference.instDecidableEqStat.decEq a_1 b_1; if h : a_1 = b_1 then h ▸ have inst := Inference.instDecidableEqStat.decEq a_1 a_1; isTrue ⋯ else isFalse ⋯ else isFalse ⋯
Instances For
@[instance_reducible]
Equations
@[instance_reducible]
Equations
- Inference.instDecidableEqProofD.decEq (Inference.ProofD.ax₁ a a_1) (Inference.ProofD.ax₁ b b_1) = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
- Inference.instDecidableEqProofD.decEq (Inference.ProofD.ax₁ a a_1) (Inference.ProofD.ax₂ a_2 a_3 a_4) = isFalse ⋯
- Inference.instDecidableEqProofD.decEq (Inference.ProofD.ax₁ a a_1) (Inference.ProofD.ax₃ a_2 a_3) = isFalse ⋯
- Inference.instDecidableEqProofD.decEq (Inference.ProofD.ax₁ a a_1) (a_2.mp a_3) = isFalse ⋯
- Inference.instDecidableEqProofD.decEq (Inference.ProofD.ax₂ a a_1 a_2) (Inference.ProofD.ax₁ a_3 a_4) = isFalse ⋯
- Inference.instDecidableEqProofD.decEq (Inference.ProofD.ax₂ a a_1 a_2) (Inference.ProofD.ax₂ b b_1 b_2) = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ if h : a_2 = b_2 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯ else isFalse ⋯
- Inference.instDecidableEqProofD.decEq (Inference.ProofD.ax₂ a a_1 a_2) (Inference.ProofD.ax₃ a_3 a_4) = isFalse ⋯
- Inference.instDecidableEqProofD.decEq (Inference.ProofD.ax₂ a a_1 a_2) (a_3.mp a_4) = isFalse ⋯
- Inference.instDecidableEqProofD.decEq (Inference.ProofD.ax₃ a a_1) (Inference.ProofD.ax₁ a_2 a_3) = isFalse ⋯
- Inference.instDecidableEqProofD.decEq (Inference.ProofD.ax₃ a a_1) (Inference.ProofD.ax₂ a_2 a_3 a_4) = isFalse ⋯
- Inference.instDecidableEqProofD.decEq (Inference.ProofD.ax₃ a a_1) (Inference.ProofD.ax₃ b b_1) = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
- Inference.instDecidableEqProofD.decEq (Inference.ProofD.ax₃ a a_1) (a_2.mp a_3) = isFalse ⋯
- Inference.instDecidableEqProofD.decEq (a.mp a_1) (Inference.ProofD.ax₁ a_2 a_3) = isFalse ⋯
- Inference.instDecidableEqProofD.decEq (a.mp a_1) (Inference.ProofD.ax₂ a_2 a_3 a_4) = isFalse ⋯
- Inference.instDecidableEqProofD.decEq (a.mp a_1) (Inference.ProofD.ax₃ a_2 a_3) = isFalse ⋯
- Inference.instDecidableEqProofD.decEq (a.mp a_1) (b.mp b_1) = if h : a = b then h ▸ have inst := Inference.instDecidableEqProofD.decEq a a; have inst := Inference.instDecidableEqProofD.decEq a_1 b_1; if h : a_1 = b_1 then h ▸ have inst := Inference.instDecidableEqProofD.decEq a_1 a_1; isTrue ⋯ else isFalse ⋯ else isFalse ⋯
Instances For
Equations
- (Inference.ProofD.ax₁ P Q).stat = some (P.imp (Q.imp P))
- (Inference.ProofD.ax₂ P Q R).stat = some ((P.imp (Q.imp R)).imp ((P.imp Q).imp (P.imp R)))
- (Inference.ProofD.ax₃ P Q).stat = some ((P.not.imp Q.not).imp (Q.imp P))
- (p₁.mp p₂).stat = do let __do_lift ← p₁.stat let __do_lift_1 ← p₂.stat match __do_lift, __do_lift_1 with | P.imp Q, P' => do guard (P = P') some Q | x, x_1 => none
Instances For
Equations
- (Inference.ProofD.ax₁ P Q).subst i s = Inference.ProofD.ax₁ (P.subst i s) (Q.subst i s)
- (Inference.ProofD.ax₂ P Q R).subst i s = Inference.ProofD.ax₂ (P.subst i s) (Q.subst i s) (R.subst i s)
- (Inference.ProofD.ax₃ P Q).subst i s = Inference.ProofD.ax₃ (P.subst i s) (Q.subst i s)
- (p₁.mp p₂).subst i s = (p₁.subst i s).mp (p₂.subst i s)
Instances For
Equations
- p.shortest = Classical.epsilon fun (p₁ : Inference.ProofD) => p₁.stat = p.stat ∧ ∀ (p₂ : Inference.ProofD), p₂.stat = p.stat → sizeOf p₁ ≤ sizeOf p₂