proof-by-contradiction-1 (python sample)๏
See also
math concept | python declaration class | python inclusion class
This page shows how to infer new statements in a theory-derivation by applying the proof-by-contradiction-1 inference-rule.
Usage๏
Call the infer_statement method from the inference-rule inclusion class listed in the i (unabridged inference_rules ) property of the theory-derivation :
u = pu.create_universe()
t = u.t()
...
# some theory derivation code
...
t.i.proof_by_contradiction_1.infer_statement(...)
Sample code๏
Code output๏
๐ซ๐พ๐ โ๐ฐโโโ ๐ป๐พ ๐บ ๐ข๐๐๐ฃ๐๐๐ ๐-๐๐-๐๐๐ ๐๐๐ข๐๐ ๐.
๐ซ๐พ๐ โ๐ฏโโ ๐ป๐พ ๐บ ๐กโ๐๐๐๐ฆ-๐๐๐๐๐ฃ๐๐ก๐๐๐ ๐๐ ๐ฐโโ.
๐๐
๐ถ๐ผ๐บ (๐ฏโ.๐ดโ): ๐ซ๐พ๐ ๐๐ฅ๐๐๐ ๐โ โ๐๐ถ๐ฎ๐ฎ๐บ ๐ข๐น๐ช๐ฐ๐ฎ ๐ต๐ฐ ๐ฆ๐ด๐ต๐ข๐ฃ๐ญ๐ช๐ด๐ฉ ๐ด๐ฐ๐ฎ๐ฆ ๐จ๐ณ๐ฐ๐ถ๐ฏ๐ฅ ๐ฑ๐ณ๐ฐ๐ฑ๐ฐ๐ด๐ช๐ต๐ช๐ฐ๐ฏ๐ด.โ ๐ป๐พ ๐๐๐ผ๐
๐๐ฝ๐พ๐ฝ (๐๐๐๐๐๐
๐บ๐๐พ๐ฝ) ๐๐ ๐ฏโ.
๐๐ป๐ณ๐ฒ๐ฟ๐ฒ๐ป๐ฐ๐ฒ ๐ฟ๐๐น๐ฒ (๐๐ฅ๐๐๐-๐๐๐ก๐๐๐๐๐๐ก๐๐ก๐๐๐): ๐ซ๐พ๐ ๐๐๐๐๐๐๐๐๐-๐๐ข๐๐ ๐๐ฅ๐๐๐-๐๐๐ก๐๐๐๐๐๐ก๐๐ก๐๐๐ ๐ฝ๐พ๐ฟ๐๐๐พ๐ฝ ๐บ๐ โ(๐, ๐ โข ๐)โ ๐ป๐พ ๐๐๐ผ๐
๐๐ฝ๐พ๐ฝ ๐บ๐๐ฝ ๐ผ๐๐๐๐๐ฝ๐พ๐๐พ๐ฝ ๐๐บ๐
๐๐ฝ ๐๐ ๐ฏโ.
๐ฃ๐ฟ๐ผ๐ฝ๐ผ๐๐ถ๐๐ถ๐ผ๐ป (๐ฏโ.๐โ): ๐โ(๐โ, ๐โ).
๐ฃ๐ฟ๐ผ๐ฝ๐ผ๐๐ถ๐๐ถ๐ผ๐ป (๐ฏโ.๐โ): ๐โ(๐โ, ๐โ).
๐ฃ๐ฟ๐ผ๐ฝ๐ผ๐๐ถ๐๐ถ๐ผ๐ป (๐ฏโ.๐โ): ((๐โ(๐ฑโ, ๐ฒโ) โง ๐โ(๐ฒโ, ๐ณโ)) โน ๐โ(๐ฑโ, ๐ณโ)).
๐๐
๐ถ๐ผ๐บ (โโ.๐ดโ): ๐ซ๐พ๐ ๐๐ฅ๐๐๐ ๐โ โ๐๐บ ๐ฉ๐บ๐ฑ๐ฐ๐ต๐ฉ๐ฆ๐ด๐ช๐ด, ๐ข๐ด๐ด๐ถ๐ฎ๐ฆ ยฌ(๐โ(๐โ, ๐โ)) ๐ช๐ด ๐ต๐ณ๐ถ๐ฆ.โ ๐ป๐พ ๐๐๐ผ๐
๐๐ฝ๐พ๐ฝ (๐๐๐๐๐๐
๐บ๐๐พ๐ฝ) ๐๐ โโ.
๐๐ป๐ณ๐ฒ๐ฟ๐ฒ๐ป๐ฐ๐ฒ ๐ฟ๐๐น๐ฒ (๐๐ฅ๐๐๐-๐๐๐ก๐๐๐๐๐๐ก๐๐ก๐๐๐): ๐ซ๐พ๐ ๐๐๐๐๐๐๐๐๐-๐๐ข๐๐ ๐๐ฅ๐๐๐-๐๐๐ก๐๐๐๐๐๐ก๐๐ก๐๐๐ ๐ฝ๐พ๐ฟ๐๐๐พ๐ฝ ๐บ๐ โ(๐, ๐ โข ๐)โ ๐ป๐พ ๐๐๐ผ๐
๐๐ฝ๐พ๐ฝ ๐บ๐๐ฝ ๐ผ๐๐๐๐๐ฝ๐พ๐๐พ๐ฝ ๐๐บ๐
๐๐ฝ ๐๐ โโ.
๐ฃ๐ฟ๐ผ๐ฝ๐ผ๐๐ถ๐๐ถ๐ผ๐ป (โโ.๐โ): ยฌ(๐โ(๐โ, ๐โ)).
๐๐๐ฝ๐ผ๐๐ต๐ฒ๐๐ถ๐ (๐ฏโ.๐ปโ) - We pose the negation hypothesis: ยฌ(๐โ(๐โ, ๐โ)). ๐ณ๐๐๐ ๐๐๐๐๐๐๐พ๐๐๐ ๐๐ ๐พ๐
๐บ๐ป๐๐๐บ๐๐พ๐ฝ ๐๐ ๐๐๐พ๐๐๐ โโ.
A2
I2
ยฌ(๐โ(๐โ, ๐โ))
A1
I1
๐โ(๐โ, ๐โ)
๐โ(๐โ, ๐โ)
((๐โ(๐ฑโ, ๐ฒโ) โง ๐โ(๐ฒโ, ๐ณโ)) โน ๐โ(๐ฑโ, ๐ณโ))
H1
๐๐ป๐ณ๐ฒ๐ฟ๐ฒ๐ป๐ฐ๐ฒ ๐ฟ๐๐น๐ฒ (๐๐๐๐๐ข๐๐๐ก๐๐๐-๐๐๐ก๐๐๐๐ข๐๐ก๐๐๐): ๐ซ๐พ๐ ๐๐๐๐๐๐๐๐๐-๐๐ข๐๐ ๐๐๐๐๐ข๐๐๐ก๐๐๐-๐๐๐ก๐๐๐๐ข๐๐ก๐๐๐ ๐ฝ๐พ๐ฟ๐๐๐พ๐ฝ ๐บ๐ โ(๐โ, ๐โ โข (๐โ โง ๐โ))โ ๐ป๐พ ๐๐๐ผ๐
๐๐ฝ๐พ๐ฝ ๐บ๐๐ฝ ๐ผ๐๐๐๐๐ฝ๐พ๐๐พ๐ฝ ๐๐บ๐
๐๐ฝ ๐๐ โโ.
๐ฃ๐ฟ๐ผ๐ฝ๐ผ๐๐ถ๐๐ถ๐ผ๐ป (โโ.๐โ
): (๐โ(๐โ, ๐โ) โง ๐โ(๐โ, ๐โ)).
๐๐ป๐ณ๐ฒ๐ฟ๐ฒ๐ป๐ฐ๐ฒ ๐ฟ๐๐น๐ฒ (๐ฃ๐๐๐๐๐๐๐-๐ ๐ข๐๐ ๐ก๐๐ก๐ข๐ก๐๐๐): ๐ซ๐พ๐ ๐๐๐๐๐๐๐๐๐-๐๐ข๐๐ ๐ฃ๐๐๐๐๐๐๐-๐ ๐ข๐๐ ๐ก๐๐ก๐ข๐ก๐๐๐ ๐ฝ๐พ๐ฟ๐๐๐พ๐ฝ ๐บ๐ โ(๐โ, ๐โ โข ๐โ)โ ๐ป๐พ ๐๐๐ผ๐
๐๐ฝ๐พ๐ฝ ๐บ๐๐ฝ ๐ผ๐๐๐๐๐ฝ๐พ๐๐พ๐ฝ ๐๐บ๐
๐๐ฝ ๐๐ โโ.
๐ฃ๐ฟ๐ผ๐ฝ๐ผ๐๐ถ๐๐ถ๐ผ๐ป (โโ.๐โ): ((๐โ(๐โ, ๐โ) โง ๐โ(๐โ, ๐โ)) โน ๐โ(๐โ, ๐โ)).
๐๐ป๐ณ๐ฒ๐ฟ๐ฒ๐ป๐ฐ๐ฒ ๐ฟ๐๐น๐ฒ (๐๐๐๐ข๐ -๐๐๐๐๐๐ ): ๐ซ๐พ๐ ๐๐๐๐๐๐๐๐๐-๐๐ข๐๐ ๐๐๐๐ข๐ -๐๐๐๐๐๐ ๐ฝ๐พ๐ฟ๐๐๐พ๐ฝ ๐บ๐ โ((๐โ โน ๐โ), ๐โ โข ๐โ)โ ๐ป๐พ ๐๐๐ผ๐
๐๐ฝ๐พ๐ฝ ๐บ๐๐ฝ ๐ผ๐๐๐๐๐ฝ๐พ๐๐พ๐ฝ ๐๐บ๐
๐๐ฝ ๐๐ โโ.
๐ฃ๐ฟ๐ผ๐ฝ๐ผ๐๐ถ๐๐ถ๐ผ๐ป (โโ.๐โ): ๐โ(๐โ, ๐โ).
๐๐ป๐ณ๐ฒ๐ฟ๐ฒ๐ป๐ฐ๐ฒ ๐ฟ๐๐น๐ฒ (๐๐๐๐๐๐ ๐๐ ๐ก๐๐๐๐ฆ-๐๐๐ก๐๐๐๐ข๐๐ก๐๐๐-1): ๐ซ๐พ๐ ๐๐๐๐๐๐๐๐๐-๐๐ข๐๐ ๐๐๐๐๐๐ ๐๐ ๐ก๐๐๐๐ฆ-๐๐๐ก๐๐๐๐ข๐๐ก๐๐๐-1 ๐ฝ๐พ๐ฟ๐๐๐พ๐ฝ ๐บ๐ โ(๐โ, ยฌ(๐โ) โข ๐ผ๐๐(๐ฏโ))โ ๐ป๐พ ๐๐๐ผ๐
๐๐ฝ๐พ๐ฝ ๐บ๐๐ฝ ๐ผ๐๐๐๐๐ฝ๐พ๐๐พ๐ฝ ๐๐บ๐
๐๐ฝ ๐๐ ๐ฏโ.
๐ฃ๐ฟ๐ผ๐ฝ๐ผ๐๐ถ๐๐ถ๐ผ๐ป (๐ฏโ.๐โ) - Proof of the hypothesis inconsistency: ๐ผ๐๐(โโ). ๐ฃ๐ฟ๐ผ๐ผ๐ณ: ๐ซ๐พ๐ ๐ท := ๐โ(๐โ, ๐โ), ๐๐๐๐ผ๐ ๐ฟ๐๐
๐
๐๐๐ ๐ฟ๐๐๐ ๐ฝ๐ฟ๐ผ๐ฝ. (๐โ). ๐ซ๐พ๐ ยฌ(๐ท) := ยฌ(๐โ(๐โ, ๐โ)), ๐๐๐๐ผ๐ ๐ฟ๐๐
๐
๐๐๐ ๐ฟ๐๐๐ ๐ฝ๐ฟ๐ผ๐ฝ. (๐โ). ๐ณ๐๐พ๐๐พ๐ฟ๐๐๐พ, ๐ป๐ ๐๐๐พ ๐๐๐๐๐๐ ๐๐ ๐ก๐๐๐๐ฆ-๐๐๐ก๐๐๐๐ข๐๐ก๐๐๐-1 ๐๐๐ฟ๐พ๐๐พ๐๐ผ๐พ ๐๐๐
๐พ: (๐โ, ยฌ(๐โ) โข ๐ผ๐๐(๐ฏโ)), ๐๐ ๐ฟ๐๐
๐
๐๐๐ ๐๐๐บ๐ ๐ผ๐๐(โโ). โ
๐๐ป๐ณ๐ฒ๐ฟ๐ฒ๐ป๐ฐ๐ฒ ๐ฟ๐๐น๐ฒ (๐๐๐๐๐-๐๐ฆ-๐๐๐๐ก๐๐๐๐๐๐ก๐๐๐-1): ๐ซ๐พ๐ ๐๐๐๐๐๐๐๐๐-๐๐ข๐๐ ๐๐๐๐๐-๐๐ฆ-๐๐๐๐ก๐๐๐๐๐๐ก๐๐๐-1 ๐ฝ๐พ๐ฟ๐๐๐พ๐ฝ ๐บ๐ โ((๐โ ๐๐๐๐๐ข๐๐๐ก๐ ยฌ(๐โโ)), ๐ผ๐๐(๐โ) โข ๐โโ)โ ๐ป๐พ ๐๐๐ผ๐
๐๐ฝ๐พ๐ฝ ๐บ๐๐ฝ ๐ผ๐๐๐๐๐ฝ๐พ๐๐พ๐ฝ ๐๐บ๐
๐๐ฝ ๐๐ ๐ฏโ.
๐ฃ๐ฟ๐ผ๐ฝ๐ผ๐๐ถ๐๐ถ๐ผ๐ป (๐ฏโ.๐โ) - The proposition of interest: ๐โ(๐โ, ๐โ). ๐ฃ๐ฟ๐ผ๐ผ๐ณ: ๐ซ๐พ๐ ๐ต๐๐ฝ. (๐ปโ) ๐ป๐พ ๐๐๐พ ๐๐๐๐๐๐๐พ๐๐๐ ยฌ(๐โ(๐โ, ๐โ)). ๐ผ๐๐(โโ) ๐ฟ๐๐
๐
๐๐๐ ๐ฟ๐๐๐ ๐ฝ๐ฟ๐ผ๐ฝ. (๐โ). ๐ณ๐๐พ๐๐พ๐ฟ๐๐๐พ, ๐ป๐ ๐๐๐พ ๐๐๐๐๐-๐๐ฆ-๐๐๐๐ก๐๐๐๐๐๐ก๐๐๐-1 ๐๐๐ฟ๐พ๐๐พ๐๐ผ๐พ ๐๐๐
๐พ: ((๐โ ๐๐๐๐๐ข๐๐๐ก๐ ยฌ(๐โโ)), ๐ผ๐๐(๐โ) โข ๐โโ), ๐๐ ๐ฟ๐๐
๐
๐๐๐ ๐๐๐บ๐ ๐โ(๐โ, ๐โ). โ
import punctilious as pu
# Create a universe-of-discourse with basic objects for the sake of this example.
u = pu.create_universe_of_discourse(echo=True)
a1 = u.a.declare(natural_language='Dummy axiom to establish some ground propositions.')
o1 = u.o.declare()
o2 = u.o.declare()
o3 = u.o.declare()
f = u.r.declare(arity=2, symbol='f', signal_proposition=True)
t1 = u.t(echo=True)
# Elaborate a dummy theory with a set of propositions necessary for our demonstration
a = t1.include_axiom(a=a1)
pu.configuration.echo_proof = False
t1.i.axiom_interpretation.infer_formula_statement(a=a, p=f(o1, o2), lock=False)
t1.i.axiom_interpretation.infer_formula_statement(a=a, p=f(o2, o3), lock=False)
with u.with_variable('x') as x, u.with_variable('y') as y, u.with_variable('z') as z:
implication = t1.i.axiom_interpretation.infer_formula_statement(a=a,
p=(f(x, y) | u.r.land | f(y, z)) | u.r.implies | f(x, z), lock=True)
t1.stabilize()
# Pose the negation hypothesis
h = t1.pose_hypothesis(hypothesis_formula=u.r.lnot(f(o1, o3)),
subtitle='We pose the negation hypothesis')
for i in h.child_theory.iterate_statements_in_theory_chain():
print(i)
conjunction_introduction = h.child_theory.i.conjunction_introduction.infer_formula_statement(
p=f(o1, o2), q=f(o2, o3))
variable_substitution = h.child_theory.i.variable_substitution.infer_formula_statement(
p=implication, phi=u.r.tupl(o1, o2, o3))
modus_ponens = h.child_theory.i.modus_ponens.infer_formula_statement(
p_implies_q=variable_substitution, p=conjunction_introduction)
# Prove hypothesis inconsistency
pu.configuration.echo_proof = True
h_inconsistency = t1.i.inconsistency_introduction_1.infer_formula_statement(p=modus_ponens,
not_p=h.child_statement, t=h.child_theory, subtitle='Proof of the hypothesis inconsistency')
# And finally, use the proof-by-contradiction-1 inference-rule:
proposition_of_interest = t1.i.proof_by_contradiction_1.infer_formula_statement(h=h,
inc_h=h_inconsistency, subtitle='The proposition of interest')
Let "U65" be a universe-of-discourse.
Let "T1" be a theory-derivation in U65.
Axiom (T1.A1): Let axiom A1 "Dummy axiom to establish some ground propositions." be included (postulated) in T1.
Inference rule (axiom-interpretation): Let inference-rule axiom-interpretation defined as "(A, P |- P)" be included and considered valid in T1.
Proposition (T1.P1): f1(o1, o2).
Proposition (T1.P2): f1(o2, o3).
Proposition (T1.P3): ((f1(x1, y1) and f1(y1, z1)) ==> f1(x1, z1)).
Axiom (H1.A2): Let axiom A2 "By hypothesis, assume not(f1(o1, o3)) is true." be included (postulated) in H1.
Inference rule (axiom-interpretation): Let inference-rule axiom-interpretation defined as "(A, P |- P)" be included and considered valid in H1.
Proposition (H1.P4): not(f1(o1, o3)).
Hypothesis (T1.H1) - We pose the negation hypothesis: not(f1(o1, o3)). This hypothesis is elaborated in theory H1.
A2
I2
not(f1(o1, o3))
A1
I1
f1(o1, o2)
f1(o2, o3)
((f1(x1, y1) and f1(y1, z1)) ==> f1(x1, z1))
H1
Inference rule (conjunction-introduction): Let inference-rule conjunction-introduction defined as "(P1, Q1 |- (P1 and Q1))" be included and considered valid in H1.
Proposition (H1.P5): (f1(o1, o2) and f1(o2, o3)).
Inference rule (variable-substitution): Let inference-rule variable-substitution defined as "(P2, O1 |- Q2)" be included and considered valid in H1.
Proposition (H1.P6): ((f1(o1, o2) and f1(o2, o3)) ==> f1(o1, o3)).
Inference rule (modus-ponens): Let inference-rule modus-ponens defined as "((P4 ==> Q3), P4 |- Q3)" be included and considered valid in H1.
Proposition (H1.P7): f1(o1, o3).
Inference rule (inconsistency-introduction-1): Let inference-rule inconsistency-introduction-1 defined as "(P7, not(P7) |- Inc(T1))" be included and considered valid in T1.
Proposition (T1.P8) - Proof of the hypothesis inconsistency: Inc(H1). Proof: Let P := f1(o1, o3), which follows from prop. (P7). Let not(P) := not(f1(o1, o3)), which follows from prop. (P4). Therefore, by the inconsistency-introduction-1 inference rule: (P7, not(P7) |- Inc(T1)), it follows that Inc(H1). QED
Inference rule (proof-by-contradiction-1): Let inference-rule proof-by-contradiction-1 defined as "((H1 formulate not(P10)), Inc(H1) |- P10)" be included and considered valid in T1.
Proposition (T1.P9) - The proposition of interest: f1(o1, o3). Proof: Let hyp. (H1) be the hypothesis not(f1(o1, o3)). Inc(H1) follows from prop. (P8). Therefore, by the proof-by-contradiction-1 inference rule: ((H1 formulate not(P10)), Inc(H1) |- P10), it follows that f1(o1, o3). QED
Will be provided in a future version.
Will be provided in a future version.