text‹ In this paper, we use Isabelle/HOL to verify some elementary theorems and alternative axiomatizations
classical extensional mereology, as well as some of its weaker subtheories.\footnote{For similar
see cite‹"sen_computational_2017"› and cite‹"bittner_formal_2018"›.} We mostly follow the
from cite‹"simons_parts:_1987"›, cite‹"varzi_parts_1996"› and cite‹"casati_parts_1999"›,
some important corrections from cite‹"pontow_note_2004"› and cite‹"hovda_what_2009"› as well as
detailed proofs adapted from cite‹"pietruszczak_metamereology_2018"›.\footnote{For help with
project I am grateful to Zach Barnett, Sam Baron, Bob Beddor, Olivier Danvy, Mark Goh,
Joven Joaquin, Wang-Yen Lee, Kee Wei Loo, Bruno Woltzenlogel Paleo, Michael Pelczar, Hsueh Qu,
Podgorski, Divyanshu Sharma, Manikaran Singh, Neil Sinhababu, Weng-Hong Tang and Zhang Jiang.} ›
text‹ We will use the following notation throughout.\footnote{See cite‹"simons_parts:_1987"› pp. 99-100
a helpful comparison of alternative notations.} ›
typedecl i consts part :: "i ==> i ==> bool" (‹P›) consts overlap :: "i ==> i ==> bool" (‹O›) consts proper_part :: "i ==> i ==> bool" (‹PP›) consts sum :: "i ==> i ==> i" (infix‹⊕›52) consts product :: "i ==> i ==> i" (infix‹⊗›53) consts difference :: "i ==> i ==> i" (infix‹⊖›51) consts complement:: "i ==> i" (‹←-›) consts universe :: "i" (‹u›) consts general_sum :: "(i ==> bool) ==> i" (binder‹σ›9) consts general_product :: "(i ==> bool) ==> i" (binder‹π› [8] 9)
section‹ Premereology ›
text‹ The theory of \emph{premereology} assumes parthood is reflexive and transitive.\footnote{
discussion of reflexivity see cite‹"kearns_can_2011"›. For transitivity see cite‹"varzi_note_2006"›.}
other words, parthood is assumed to be a partial ordering relation.\footnote{Hence the name \emph{premereology}, cite‹"parsons_many_2014"› p. 6.} Overlap is defined as common parthood.\footnote{See cite‹"simons_parts:_1987"› p. 28, cite‹"varzi_parts_1996"› p. 261 and cite‹"casati_parts_1999"› p. 36. } ›
locale PM = assumes part_reflexivity: "P x x" assumes part_transitivity : "P x y ==> P y z ==> P x z" assumes overlap_eq: "O x y ⟷ (∃ z. P z x ∧ P z y)" begin
subsection‹ Parthood ›
lemma identity_implies_part : "x = y ==> P x y" proof - assume"x = y" moreoverhave"P x x"by (rule part_reflexivity) ultimatelyshow"P x y"by (rule subst) qed
subsection‹ Overlap ›
lemma overlap_intro: "P z x ==> P z y ==> O x y" proof- assume"P z x" moreoverassume"P z y" ultimatelyhave"P z x ∧ P z y".. hence"∃ z. P z x ∧ P z y".. with overlap_eq show"O x y".. qed
lemma part_implies_overlap: "P x y ==> O x y" proof - assume"P x y" with part_reflexivity have"P x x ∧ P x y".. hence"∃ z. P z x ∧ P z y".. with overlap_eq show"O x y".. qed
lemma overlap_reflexivity: "O x x" proof - have"P x x ∧ P x x"using part_reflexivity part_reflexivity.. hence"∃ z. P z x ∧ P z x".. with overlap_eq show"O x x".. qed
lemma overlap_symmetry: "O x y ==> O y x" proof- assume"O x y" with overlap_eq have"∃ z. P z x ∧ P z y".. hence"∃ z. P z y ∧ P z x"by auto with overlap_eq show"O y x".. qed
lemma overlap_monotonicity: "P x y ==> O z x ==> O z y" proof - assume"P x y" assume"O z x" with overlap_eq have"∃ v. P v z ∧ P v x".. thenobtain v where v: "P v z ∧ P v x".. hence"P v z".. moreoverfrom v have"P v x".. hence"P v y"using‹P x y›by (rule part_transitivity) ultimatelyhave"P v z ∧ P v y".. hence"∃ v. P v z ∧ P v y".. with overlap_eq show"O z y".. qed
text‹ The next lemma is from cite‹"hovda_what_2009"› p. 66. ›
lemma overlap_lemma: "∃x. (P x y ∧ O z x) ⟶ O y z" proof - fix x have"P x y ∧ O z x ⟶ O y z" proof assume antecedent: "P x y ∧ O z x" hence"O z x".. with overlap_eq have"∃v. P v z ∧ P v x".. thenobtain v where v: "P v z ∧ P v x".. hence"P v x".. moreoverfrom antecedent have"P x y".. ultimatelyhave"P v y"by (rule part_transitivity) moreoverfrom v have"P v z".. ultimatelyhave"P v y ∧ P v z".. hence"∃v. P v y ∧ P v z".. with overlap_eq show"O y z".. qed thus"∃x. (P x y ∧ O z x) ⟶ O y z".. qed
subsection‹ Disjointness ›
lemma disjoint_implies_distinct: "¬ O x y ==> x ≠ y" proof - assume"¬ O x y" show"x ≠ y" proof assume"x = y" hence"¬ O y y"using‹¬ O x y›by (rule subst) thus"False"using overlap_reflexivity.. qed qed
lemma disjoint_implies_not_part: "¬ O x y ==>¬ P x y" proof - assume"¬ O x y" show"¬ P x y" proof assume"P x y" hence"O x y"by (rule part_implies_overlap) with‹¬ O x y›show"False".. qed qed
lemma disjoint_symmetry: "¬ O x y ==>¬ O y x" proof - assume"¬ O x y" show"¬ O y x" proof assume"O y x" hence"O x y"by (rule overlap_symmetry) with‹¬ O x y›show"False".. qed qed
lemma disjoint_demonotonicity: "P x y ==>¬ O z y ==>¬ O z x" proof - assume"P x y" assume"¬ O z y" show"¬ O z x" proof assume"O z x" with‹P x y›have"O z y" by (rule overlap_monotonicity) with‹¬ O z y›show"False".. qed qed
end
(*<*)end(*>*)
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.