#CondensedDetachment example
Axiom 1: ⊢ (𝜑 → (𝜓 → 𝜑))
Axiom 2: ⊢ ((𝜑 → (𝜓 → 𝜒)) → ((𝜑 → 𝜓) → (𝜑 → 𝜒)))
Rule of Modus Ponens:
• Major hypothesis: ⊢ (𝜓 → 𝜑)
• Minor hypothesis: ⊢ 𝜓
• Resulting Assertion: ⊢ 𝜑
——
D<major><minor> applies the Rule of Modus Ponens treating the two given tautologies as having metavariables living in different namespaces and returning the normalized result. We extend by using underscore as a placeholder, so D__ recovers the rule of modus ponens.
——
"D2_" is proof of the rule:
• Hypothesis: ⊢ (𝜑 → (𝜓 → 𝜒))
• Resulting assertion: ⊢ ((𝜑 → 𝜓) → (𝜑 → 𝜒))
——
"D21" is a proof which unifies "1" ⊢ (𝜑′ → (𝜓′ → 𝜑′)) with the hypothesis of "D2_" giving the substitution map 𝜎: {𝜑′ ↦ 𝜑, 𝜓′ ↦ 𝜓, 𝜒 ↦ 𝜑} resulting in the tautology: ⊢ ((𝜑 → 𝜓) → (𝜑 → 𝜑))
(Note that unification can map variables from either side, but when faced with a variable matching a term has to match the variable to that term.)
——
"DD21_" is proof of the rule:
• Hypothesis: ⊢ (𝜑 → 𝜓)
• Resulting assertion: ⊢ ((𝜑 → 𝜑)
——
"DD211" is a proof which unifies "1" ⊢ (𝜑″ → (𝜓″ → 𝜑″)) with the hypothesis of "DD21_" giving the substitution map 𝜎: {𝜑″ ↦ 𝜑, 𝜓 ↦ (𝜓″ → 𝜑)} resulting in the tautology: ⊢ (𝜑 → 𝜑)
This has been adapted and expanded from a run of my symbolic-mgu pre-release crate. https://crates.io/crates/symbolic-mgu
cargo run -r --bin compact -- --wide D__ 1 2 D2_ D21 DD21_ DD211
