Theory Galois_Equivalent
theory Galois_Equivalent
  imports
    Transport_Compositions_Agree_Galois_Equivalence
begin
context
begin
interpretation galois L R l r for L R l r .
definition "galois_equivalent L R ≡ ∃l r. (L ≡⇩G R) l r"
lemma galois_equivalentI [intro]:
  assumes "(L ≡⇩G R) l r"
  shows "galois_equivalent L R"
  using assms unfolding galois_equivalent_def by auto
lemma galois_equivalentE [elim]:
  assumes "galois_equivalent L R"
  obtains l r where "(L ≡⇩G R) l r"
  using assms unfolding galois_equivalent_def by auto
lemma galois_equivalent_if_galois_equivalent:
  assumes "galois_equivalent L R"
  shows "galois_equivalent R L"
  using assms by (elim galois_equivalentE) auto
lemma galois_equivalent_trans [trans]:
  assumes "galois_equivalent L M"
  and "galois_equivalent M R"
  shows "galois_equivalent L R"
  using assms by (elim galois_equivalentE) (auto intro: transport_comp_same.galois_equivalenceI)
end
end