Skip to content
Snippets Groups Projects
pvs_cert.lp 484 B
Newer Older
gabrielhdt's avatar
gabrielhdt committed
// PVS-Cert
require open personoj.lhol;
gabrielhdt's avatar
gabrielhdt committed

constant symbol psub {x: Set}: (El x → Prop) → Set;
hondet's avatar
hondet committed
protected constant symbol pair': Π(a: Set) (p: El a → Prop), El a → El (@psub a p);
symbol fst: Π{a: Set} {p: El a → Prop}, El (@psub a p) → El a;
hondet's avatar
hondet committed
symbol snd {a: Set} {p: El a → Prop} (m: El (@psub a p)): Prf (p (@fst a p m));
gabrielhdt's avatar
gabrielhdt committed

gabrielhdt's avatar
gabrielhdt committed
// Proof irrelevance
hondet's avatar
hondet committed
symbol pair {a: Set} {p: El a → Prop} (m: El a) (_: Prf (p m))
     ≔ pair' a p m;
gabrielhdt's avatar
gabrielhdt committed

hondet's avatar
hondet committed
rule @fst _ _ (pair' _ _ $M) ↪ $M;