@@ -25,8 +25,9 @@ def swap {a b: EVar} (phi: Pattern a b): Pattern a b = $ (sym swap_sym) @@ eVar
25
25
def moot_swap {a: EVar} (phi: Pattern a): Pattern a = $ (sym swap_sym) @@ eVar a @@ eVar a @@ phi $;
26
26
term abstraction_sym: Symbol;
27
27
def abstraction (phi rho: Pattern): Pattern = $ (sym abstraction_sym) @@ phi @@ rho $;
28
- term freshness_sym: Symbol;
29
- def freshness {a: EVar}: Pattern a = $ (sym freshness_sym) @@ eVar a $;
28
+ term supp_sym: Symbol;
29
+ def supp (phi: Pattern): Pattern = $ (sym supp_sym) @@ phi $;
30
+ def fresh_for {a: EVar} (phi: Pattern a): Pattern a = $ ~ (a in supp phi) $;
30
31
31
32
def EV_pattern {.a .b: EVar} (alpha phi: Pattern): Pattern =
32
33
$ s_forall alpha a (s_forall alpha b ((swap a b phi) == phi)) $;
@@ -39,10 +40,10 @@ axiom function_abstraction:
39
40
$ is_atom_sort alpha $ >
40
41
$ is_nominal_sort tau $ >
41
42
$ ,(is_function '(sym abstraction_sym) '[alpha tau] '(sort_abstraction alpha tau)) $;
42
- axiom pred_freshness :
43
+ axiom multifunction_supp :
43
44
$ is_atom_sort alpha $ >
44
45
$ is_nominal_sort tau $ >
45
- $ ,(is_multi_function '(sym freshness_sym ) '[alpha ] 'tau ) $;
46
+ $ ,(is_multi_function '(sym supp_sym ) '[tau ] 'alpha ) $;
46
47
47
48
axiom EV_abstraction {a b: EVar} (alpha tau: Pattern) (phi psi: Pattern a b):
48
49
$ is_atom_sort alpha $ >
@@ -87,18 +88,18 @@ axiom F1 (alpha tau: Pattern) {a b: EVar} (phi: Pattern a b):
87
88
$ (is_atom a alpha) ->
88
89
(is_atom b alpha) ->
89
90
(is_of_sort phi tau) ->
90
- ((phi C= freshness a ) /\ (phi C= freshness b ) -> ((swap a b phi) == phi)) $;
91
+ ((fresh_for a phi ) /\ (fresh_for b phi ) -> ((swap a b phi) == phi)) $;
91
92
axiom F23 (alpha1 alpha2: Pattern) {a b: EVar}:
92
93
$ is_atom_sort alpha1 $ >
93
94
$ is_atom_sort alpha2 $ >
94
95
$ (is_atom a alpha1) ->
95
96
(is_atom b alpha2) ->
96
- (b in freshness a ) $;
97
+ (fresh_for a (eVar b) ) $;
97
98
axiom F4 (alpha tau phi: Pattern) {a: EVar}:
98
99
$ is_atom_sort alpha $ >
99
100
$ is_nominal_sort tau $ >
100
101
$ (is_of_sort phi tau) ->
101
- (s_exists alpha a (phi C= freshness a )) $;
102
+ (s_exists alpha a (fresh_for a phi )) $;
102
103
axiom A1_same (alpha tau: Pattern) {a: EVar} (phi rho: Pattern a):
103
104
$ is_atom_sort alpha $ >
104
105
$ is_nominal_sort tau $ >
@@ -114,7 +115,7 @@ axiom A1 (alpha tau: Pattern) {a b: EVar} (phi rho: Pattern a b):
114
115
(is_of_sort phi tau) ->
115
116
(is_of_sort rho tau) ->
116
117
(((abstraction (eVar a) phi) == (abstraction (eVar b) rho)) <->
117
- ((rho C= freshness a ) /\ ((swap a b phi) == rho))) $;
118
+ ((fresh_for a rho ) /\ ((swap a b phi) == rho))) $;
118
119
axiom A2 (alpha tau: Pattern) {x a y: EVar}:
119
120
$ is_atom_sort alpha $ >
120
121
$ is_nominal_sort tau $ >
0 commit comments