equal
deleted
inserted
replaced
277 |
277 |
278 lemma nat_case_transfer [transfer_rule]: |
278 lemma nat_case_transfer [transfer_rule]: |
279 "(A ===> (op = ===> A) ===> op = ===> A) nat_case nat_case" |
279 "(A ===> (op = ===> A) ===> op = ===> A) nat_case nat_case" |
280 unfolding fun_rel_def by (simp split: nat.split) |
280 unfolding fun_rel_def by (simp split: nat.split) |
281 |
281 |
|
282 lemma nat_rec_transfer [transfer_rule]: |
|
283 "(A ===> (op = ===> A ===> A) ===> op = ===> A) nat_rec nat_rec" |
|
284 unfolding fun_rel_def by (clarsimp, rename_tac n, induct_tac n, simp_all) |
|
285 |
|
286 lemma funpow_transfer [transfer_rule]: |
|
287 "(op = ===> (A ===> A) ===> (A ===> A)) compow compow" |
|
288 unfolding funpow_def by transfer_prover |
|
289 |
282 text {* Fallback rule for transferring universal quantifiers over |
290 text {* Fallback rule for transferring universal quantifiers over |
283 correspondence relations that are not bi-total, and do not have |
291 correspondence relations that are not bi-total, and do not have |
284 custom transfer rules (e.g. relations between function types). *} |
292 custom transfer rules (e.g. relations between function types). *} |
285 |
293 |
286 lemma Domainp_iff: "Domainp T x \<longleftrightarrow> (\<exists>y. T x y)" |
294 lemma Domainp_iff: "Domainp T x \<longleftrightarrow> (\<exists>y. T x y)" |