Theory EM

section ‹ Extensional Mereology ›

(*<*)
theory EM
  imports MM
begin
(*>*)

text ‹ Extensional mereology adds to ground mereology the axiom of strong supplementation.\footnote{
See cite"simons_parts:_1987" p. 29, cite"varzi_parts_1996" p. 262 and cite"casati_parts_1999" 
p. 39-40.} ›

locale EM = M +
  assumes strong_supplementation: 
    "¬ P x y  (z. P z x  ¬ O z y)"
begin

text ‹ Strong supplementation entails weak supplementation.\footnote{See cite"simons_parts:_1987"
p. 29 and cite"casati_parts_1999" p. 40.} ›

lemma weak_supplementation: "PP x y  (z. P z y  ¬ O z x)"
proof -
  assume "PP x y"
  hence "¬ P y x" by (rule proper_implies_not_part)
  thus "z. P z y  ¬ O z x" by (rule strong_supplementation)
qed

end

text ‹ So minimal mereology is a subtheory of extensional mereology.\footnote{cite"casati_parts_1999" p. 40.} ›

sublocale EM  MM
proof
  fix y x
  show "PP y x  z. P z x  ¬ O z y" using weak_supplementation.
qed

text ‹ Strong supplementation also entails the proper parts principle.\footnote{See cite"simons_parts:_1987"
pp. 28-9 and cite"varzi_parts_1996" p. 263.} ›

context EM
begin

lemma proper_parts_principle:
"(z. PP z x)  (z. PP z x  P z y)  P x y"
proof -
  assume "z. PP z x"
  then obtain v where v: "PP v x"..
  hence "P v x" by (rule proper_implies_part)
  assume antecedent: "z. PP z x  P z y"
  hence "PP v x  P v y"..
  hence "P v y" using PP v x..
  with P v x have "P v x  P v y"..
  hence "v. P v x  P v y"..
  with overlap_eq have "O x y"..
  show "P x y"
  proof (rule ccontr)
    assume "¬ P x y"
    hence "z. P z x  ¬ O z y"
      by (rule strong_supplementation)
    then obtain z where z: "P z x  ¬ O z y"..
    hence "P z x"..
    moreover have "z  x"
    proof
      assume "z = x"
      moreover from z have "¬ O z y"..
      ultimately have "¬ O x y" by (rule subst)
      thus "False"  using O x y..
    qed
    ultimately have "P z x  z  x"..
    with nip_eq have "PP z x"..
    from antecedent have "PP z x  P z y"..
    hence "P z y" using PP z x..
    hence "O z y" by (rule part_implies_overlap)
    from z have "¬ O z y"..
    thus "False" using O z y..
  qed
qed

text ‹ Which with antisymmetry entails the extensionality of proper parthood.\footnote{See
cite"simons_parts:_1987" p. 28, cite"varzi_parts_1996" p. 263 and cite"casati_parts_1999"
p. 40.} ›

theorem proper_part_extensionality:
"(z. PP z x  PP z y)  x = y  (z. PP z x  PP z y)"
proof -
  assume antecedent: "z. PP z x  PP z y"
  show "x = y  (z. PP z x  PP z y)"
  proof
    assume "x = y"
    moreover have "z. PP z x  PP z x" by simp
    ultimately show "z. PP z x  PP z y" by (rule subst)
  next
    assume right: "z. PP z x  PP z y"
    have "z. PP z x  P z y"
    proof
      fix z
      show "PP z x  P z y"
      proof
        assume "PP z x"
        from right have "PP z x  PP z y"..
        hence "PP z y" using PP z x..
        thus "P z y" by (rule proper_implies_part)
      qed
    qed
    have "z. PP z y  P z x"
    proof
      fix z
      show "PP z y  P z x"
      proof
        assume "PP z y"
        from right have "PP z x  PP z y"..
        hence "PP z x" using PP z y..
        thus "P z x" by (rule proper_implies_part)
      qed
    qed
    from antecedent obtain z where z: "PP z x  PP z y"..
    thus "x = y"
    proof (rule disjE)
      assume "PP z x"
      hence "z. PP z x"..
      hence "P x y" using z. PP z x  P z y
        by (rule proper_parts_principle)
      from right have "PP z x  PP z y"..
      hence "PP z y" using PP z x..
      hence "z. PP z y"..
      hence "P y x" using z. PP z y  P z x
        by (rule proper_parts_principle)
      with P x y show "x = y"
        by (rule part_antisymmetry)
    next
      assume "PP z y"
      hence "z. PP z y"..
      hence "P y x" using z. PP z y  P z x
        by (rule proper_parts_principle)
      from right have "PP z x  PP z y"..
      hence "PP z x" using PP z y..
      hence "z. PP z x"..
      hence "P x y" using z. PP z x  P z y
          by (rule proper_parts_principle)
      thus "x = y"
        using P y x by (rule part_antisymmetry)
    qed
  qed
qed

text ‹ It also follows from strong supplementation that parthood is definable in terms of overlap.\footnote{
See cite"parsons_many_2014" p. 4.}  ›

lemma part_overlap_eq: "P x y  (z. O z x  O z y)"
proof
  assume "P x y"
  show "(z. O z x  O z y)"
  proof
    fix z
    show "O z x  O z y"
    proof
      assume "O z x"
      with P x y show "O z y"
        by (rule overlap_monotonicity)
    qed
  qed
next
  assume right: "z. O z x  O z y"
  show "P x y"
  proof (rule ccontr)
    assume "¬ P x y"
    hence "z. P z x  ¬ O z y"
      by (rule strong_supplementation)
    then obtain z where z: "P z x  ¬ O z y"..
    hence "¬ O z y"..
    from right have "O z x  O z y"..
    moreover from z have "P z x"..
    hence "O z x" by (rule part_implies_overlap)
    ultimately have "O z y"..
    with ¬ O z y show "False"..
  qed
qed

text ‹ Which entails the extensionality of overlap. ›

theorem overlap_extensionality: "x = y  (z. O z x  O z y)"
proof
  assume "x = y"
  moreover have "z. O z x  O z x"
  proof
    fix z
    show "O z x  O z x"..
  qed
  ultimately show "z. O z x  O z y"
    by (rule subst)
next
  assume right: "z. O z x  O z y"
  have "z. O z y  O z x"
  proof
    fix z
    from right have "O z x  O z y"..
    thus "O z y  O z x"..
  qed
  with part_overlap_eq have "P y x"..
  have "z. O z x  O z y"
  proof
    fix z
    from right have "O z x  O z y"..
    thus "O z x  O z y"..
  qed
  with part_overlap_eq have "P x y"..
  thus "x = y" 
    using P y x by (rule part_antisymmetry)
qed

end

(*<*) end (*>*)