Deducteam / lambdapi

Proof assistant based on the λΠ-calculus modulo rewriting
Other
271 stars 35 forks source link

unif_rule does not convert metavariables into pattern variables #572

Open fblanqui opened 3 years ago

fblanqui commented 3 years ago
constant symbol Set : TYPE;
injective symbol τ : Set → TYPE;

constant symbol prop : Set;
symbol Prop ≔ τ prop;
injective symbol π : Prop → TYPE;

constant symbol ∀ {a} : (τ a → Prop) → Prop;
set quantifier ∀;

set verbose 3;
set flag "print_implicits" on;
set flag "print_domains" on;
set unif_rule π $p ≡ Π x, π $q[x] ↪ [ $p ≡ `∀ x, $q[x] ];
// (hint) [#equiv (π $v0_p) (Π x: $v1, π $v2_q[x]) ↪ #equiv $v0_p (`∀ x: {|?0|}, $v2_q[x])]

// this can later create the following error:
// Uncaught exception: File "src/core/sign.ml", line 191, characters 22-28: Assertion failed.
fblanqui commented 1 year ago

Requires https://github.com/Deducteam/lambdapi/issues/1010 to be fixed first.