Skip to content

Commit e5bfb65

Browse files
committed
Infinite equality lookup fix
1 parent adcaa18 commit e5bfb65

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/language/term/Equality.re

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,11 +163,19 @@ let equality =
163163
// Both variables are free, so we first check ctxs, and then use the free_var_handler if provided.
164164
let lookup1 = {
165165
let* env1 = env1;
166-
Environment.lookup(env1, x);
166+
let v = Environment.lookup(env1, x);
167+
switch (v) {
168+
| Some({term: Var(v), _}) when v == x => None
169+
| _ => v
170+
};
167171
};
168172
let lookup2 = {
169173
let* env2 = env2;
170-
Environment.lookup(env2, y);
174+
let v = Environment.lookup(env2, y);
175+
switch (v) {
176+
| Some({term: Var(v), _}) when v == y => None
177+
| _ => v
178+
};
171179
};
172180
switch (lookup1, lookup2) {
173181
| (Some(v1), Some(v2)) => exp'(v1, v2)

0 commit comments

Comments
 (0)