src/HOL/Library/Quotient.thy
changeset 11099 b301d1f72552
parent 10681 ec76e17f73c5
child 11549 e7265e70fd7c
equal deleted inserted replaced
11098:a3299b153741 11099:b301d1f72552
    21 text {*
    21 text {*
    22  \medskip Type class @{text equiv} models equivalence relations @{text
    22  \medskip Type class @{text equiv} models equivalence relations @{text
    23  "\<sim> :: 'a => 'a => bool"}.
    23  "\<sim> :: 'a => 'a => bool"}.
    24 *}
    24 *}
    25 
    25 
    26 axclass eqv < "term"
    26 axclass eqv \<subseteq> "term"
    27 consts
    27 consts
    28   eqv :: "('a::eqv) => 'a => bool"    (infixl "\<sim>" 50)
    28   eqv :: "('a::eqv) => 'a => bool"    (infixl "\<sim>" 50)
    29 
    29 
    30 axclass equiv < eqv
    30 axclass equiv \<subseteq> eqv
    31   equiv_refl [intro]: "x \<sim> x"
    31   equiv_refl [intro]: "x \<sim> x"
    32   equiv_trans [trans]: "x \<sim> y ==> y \<sim> z ==> x \<sim> z"
    32   equiv_trans [trans]: "x \<sim> y ==> y \<sim> z ==> x \<sim> z"
    33   equiv_sym [elim?]: "x \<sim> y ==> y \<sim> x"
    33   equiv_sym [elim?]: "x \<sim> y ==> y \<sim> x"
    34 
    34 
    35 lemma not_equiv_sym [elim?]: "\<not> (x \<sim> y) ==> \<not> (y \<sim> (x::'a::equiv))"
    35 lemma not_equiv_sym [elim?]: "\<not> (x \<sim> y) ==> \<not> (y \<sim> (x::'a::equiv))"