src/HOL/Library/Conditional_Parametricity.thy
changeset 67399 eab6ce8368fa
parent 67224 341fbce5b26d
child 69605 a96320074298
equal deleted inserted replaced
67398:5eb932e604a2 67399:eab6ce8368fa
    15   "Rel_match R x y = R x y"
    15   "Rel_match R x y = R x y"
    16 
    16 
    17 named_theorems parametricity_preprocess
    17 named_theorems parametricity_preprocess
    18 
    18 
    19 lemma bi_unique_Rel_match [parametricity_preprocess]:
    19 lemma bi_unique_Rel_match [parametricity_preprocess]:
    20   "bi_unique A = Rel_match (A ===> A ===> op =) op = op ="
    20   "bi_unique A = Rel_match (A ===> A ===> (=)) (=) (=)"
    21   unfolding bi_unique_alt_def2 Rel_match_def ..
    21   unfolding bi_unique_alt_def2 Rel_match_def ..
    22 
    22 
    23 lemma bi_total_Rel_match [parametricity_preprocess]:
    23 lemma bi_total_Rel_match [parametricity_preprocess]:
    24   "bi_total A = Rel_match ((A ===> op =) ===> op =) All All"
    24   "bi_total A = Rel_match ((A ===> (=)) ===> (=)) All All"
    25   unfolding bi_total_alt_def2 Rel_match_def ..
    25   unfolding bi_total_alt_def2 Rel_match_def ..
    26 
    26 
    27 lemma is_equality_Rel: "is_equality A \<Longrightarrow> Transfer.Rel A t t"
    27 lemma is_equality_Rel: "is_equality A \<Longrightarrow> Transfer.Rel A t t"
    28   by (fact transfer_raw)
    28   by (fact transfer_raw)
    29 
    29