equal
deleted
inserted
replaced
16 consts |
16 consts |
17 perm :: "'x prm \<Rightarrow> 'a \<Rightarrow> 'a" (infixr "\<bullet>" 80) |
17 perm :: "'x prm \<Rightarrow> 'a \<Rightarrow> 'a" (infixr "\<bullet>" 80) |
18 swap :: "('x \<times> 'x) \<Rightarrow> 'x \<Rightarrow> 'x" |
18 swap :: "('x \<times> 'x) \<Rightarrow> 'x \<Rightarrow> 'x" |
19 |
19 |
20 (* a "private" copy of the option type used in the abstraction function *) |
20 (* a "private" copy of the option type used in the abstraction function *) |
21 datatype_new 'a noption = nSome 'a | nNone |
21 datatype 'a noption = nSome 'a | nNone |
22 |
22 |
23 datatype_compat noption |
23 datatype_compat noption |
24 |
24 |
25 (* a "private" copy of the product type used in the nominal induct method *) |
25 (* a "private" copy of the product type used in the nominal induct method *) |
26 datatype_new ('a, 'b) nprod = nPair 'a 'b |
26 datatype ('a, 'b) nprod = nPair 'a 'b |
27 |
27 |
28 datatype_compat nprod |
28 datatype_compat nprod |
29 |
29 |
30 (* an auxiliary constant for the decision procedure involving *) |
30 (* an auxiliary constant for the decision procedure involving *) |
31 (* permutations (to avoid loops when using perm-compositions) *) |
31 (* permutations (to avoid loops when using perm-compositions) *) |