equal
deleted
inserted
replaced
51 lemma bi_unique_prod_rel [transfer_rule]: |
51 lemma bi_unique_prod_rel [transfer_rule]: |
52 assumes "bi_unique R1" and "bi_unique R2" |
52 assumes "bi_unique R1" and "bi_unique R2" |
53 shows "bi_unique (prod_rel R1 R2)" |
53 shows "bi_unique (prod_rel R1 R2)" |
54 using assms unfolding bi_unique_def prod_rel_def by auto |
54 using assms unfolding bi_unique_def prod_rel_def by auto |
55 |
55 |
56 subsection {* Correspondence rules for transfer package *} |
56 subsection {* Transfer rules for transfer package *} |
57 |
57 |
58 lemma Pair_transfer [transfer_rule]: "(A ===> B ===> prod_rel A B) Pair Pair" |
58 lemma Pair_transfer [transfer_rule]: "(A ===> B ===> prod_rel A B) Pair Pair" |
59 unfolding fun_rel_def prod_rel_def by simp |
59 unfolding fun_rel_def prod_rel_def by simp |
60 |
60 |
61 lemma fst_transfer [transfer_rule]: "(prod_rel A B ===> A) fst fst" |
61 lemma fst_transfer [transfer_rule]: "(prod_rel A B ===> A) fst fst" |
68 "((A ===> B ===> C) ===> prod_rel A B ===> C) prod_case prod_case" |
68 "((A ===> B ===> C) ===> prod_rel A B ===> C) prod_case prod_case" |
69 unfolding fun_rel_def prod_rel_def by simp |
69 unfolding fun_rel_def prod_rel_def by simp |
70 |
70 |
71 lemma curry_transfer [transfer_rule]: |
71 lemma curry_transfer [transfer_rule]: |
72 "((prod_rel A B ===> C) ===> A ===> B ===> C) curry curry" |
72 "((prod_rel A B ===> C) ===> A ===> B ===> C) curry curry" |
73 unfolding curry_def by correspondence |
73 unfolding curry_def by transfer_prover |
74 |
74 |
75 lemma map_pair_transfer [transfer_rule]: |
75 lemma map_pair_transfer [transfer_rule]: |
76 "((A ===> C) ===> (B ===> D) ===> prod_rel A B ===> prod_rel C D) |
76 "((A ===> C) ===> (B ===> D) ===> prod_rel A B ===> prod_rel C D) |
77 map_pair map_pair" |
77 map_pair map_pair" |
78 unfolding map_pair_def [abs_def] by correspondence |
78 unfolding map_pair_def [abs_def] by transfer_prover |
79 |
79 |
80 lemma prod_rel_transfer [transfer_rule]: |
80 lemma prod_rel_transfer [transfer_rule]: |
81 "((A ===> B ===> op =) ===> (C ===> D ===> op =) ===> |
81 "((A ===> B ===> op =) ===> (C ===> D ===> op =) ===> |
82 prod_rel A C ===> prod_rel B D ===> op =) prod_rel prod_rel" |
82 prod_rel A C ===> prod_rel B D ===> op =) prod_rel prod_rel" |
83 unfolding fun_rel_def by auto |
83 unfolding fun_rel_def by auto |