We have noticed that eval does not perform type checking anymore on its parameter. For example, the test proof is accepted while the eval parameter is not correctly typed vs the #assume profile. We wonder if it is the expected behaviour?
require open tests.OK.Tactic;
//constant symbol #assume : String → Π [a:Set], (τ a → Tactic) → Tactic;
//builtin "assume" ≔ #assume;
constant symbol OK: Prop;
symbol test [a:Set] (x: τ a) : π OK → π OK ≔
begin
assume a;
eval (#assume "x" (λ (x: τ a), #assume "h" (λ (h: π OK), #apply h)));
end;
We have noticed that
evaldoes not perform type checking anymore on its parameter. For example, the test proof is accepted while theevalparameter is not correctly typed vs the#assumeprofile. We wonder if it is the expected behaviour?