pub enum InferenceRule {
Show 19 variants
Identity,
WeakeningLeft,
WeakeningRight,
ContractionLeft {
index: usize,
},
ContractionRight {
index: usize,
},
Exchange,
Cut {
index: usize,
},
AndLeft {
index: usize,
},
AndRight {
index: usize,
},
OrLeft {
index: usize,
},
OrRight {
index: usize,
},
NotLeft {
index: usize,
},
NotRight {
index: usize,
},
ImplyLeft {
index: usize,
},
ImplyRight {
index: usize,
},
ExistsLeft {
index: usize,
witness: Term,
},
ExistsRight {
index: usize,
witness: Term,
},
ForAllLeft {
index: usize,
term: Term,
},
ForAllRight {
index: usize,
witness: Term,
},
}Expand description
Inference rules in sequent calculus.
Variants§
Identity
Identity axiom: A ⊢ A
WeakeningLeft
Weakening left: add formula to antecedents
WeakeningRight
Weakening right: add formula to consequents
ContractionLeft
Contraction left: remove duplicate from antecedents
ContractionRight
Contraction right: remove duplicate from consequents
Exchange
Exchange: reorder formulas (implicit, not tracked)
Cut
Cut rule: eliminate intermediate formula (index in antecedents/consequents)
AndLeft
AND introduction (left): Γ, A, B ⊢ Δ from Γ, A ∧ B ⊢ Δ
AndRight
AND introduction (right): Γ ⊢ Δ, A ∧ B from Γ ⊢ Δ, A and Γ ⊢ Δ, B
OrLeft
OR introduction (left): Γ, A ∨ B ⊢ Δ from Γ, A ⊢ Δ and Γ, B ⊢ Δ
OrRight
OR introduction (right): Γ ⊢ Δ, A, B from Γ ⊢ Δ, A ∨ B
NotLeft
NOT introduction (left): Γ, ¬A ⊢ Δ from Γ ⊢ Δ, A
NotRight
NOT introduction (right): Γ ⊢ Δ, ¬A from Γ, A ⊢ Δ
ImplyLeft
IMPLY introduction (left): Γ, A → B ⊢ Δ from Γ ⊢ Δ, A and Γ, B ⊢ Δ
ImplyRight
IMPLY introduction (right): Γ ⊢ Δ, A → B from Γ, A ⊢ Δ, B
ExistsLeft
EXISTS introduction (left): Γ, ∃x.A ⊢ Δ from Γ, A[t/x] ⊢ Δ (t fresh)
ExistsRight
EXISTS introduction (right): Γ ⊢ Δ, ∃x.A from Γ ⊢ Δ, A[t/x]
ForAllLeft
FORALL introduction (left): Γ, ∀x.A ⊢ Δ from Γ, A[t/x] ⊢ Δ
ForAllRight
FORALL introduction (right): Γ ⊢ Δ, ∀x.A from Γ ⊢ Δ, A[t/x] (t fresh)
Trait Implementations§
Source§impl Clone for InferenceRule
impl Clone for InferenceRule
Source§fn clone(&self) -> InferenceRule
fn clone(&self) -> InferenceRule
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more