- val (S,T) = match_terml [] empty_varset
(Term `\x:'a. x = f (y:'b)`)
(Term `\a. a = ~p`);
> val S = [{redex = `(f :'b -> 'a)`, residue = `$~`},
{redex = `(y :'b)`, residue = `(p :bool)`}] : ...
val T = [{redex = `:'b`, residue = `:bool`},
{redex = `:'a`, residue = `:bool`}] : ...
- match_terml [alpha] empty_varset (* forbid instantiation of 'a *)
(Term `\x:'a. x = f (y:'b)`)
(Term `\a. a = ~p`);
! Uncaught exception:
! HOL_ERR
- match_terml [] (HOLset.add(empty_varset,mk_var("y",beta)))
(Term `\x:'a. x = f (y:'b)`)
(Term `\a. a = ~p`);
! Uncaught exception:
! HOL_ERR