Theory Extensionality_Axiom

section‹The Axiom of Extensionality in $M[G]$›
theory Extensionality_Axiom
imports
  Names
begin

context forcing_data
begin
  
lemma extensionality_in_MG : "extensionality(##(M[G]))"
proof -
  {
    fix x y z
    assume 
      asms: "xM[G]" "yM[G]" "(wM[G] . w  x  w  y)"
    from xM[G] have
      "zx  zM[G]  zx"
      using transitivity_MG by auto
    also have
      "...  zy"
      using asms transitivity_MG by auto
    finally have
      "zx  zy" .
  }
  then have
    "xM[G] . yM[G] . (zM[G] . z  x  z  y)  x = y"
    by blast
  then show ?thesis unfolding extensionality_def by simp
qed
 
end  (* context forcing_data *)
end