Module A. Set Primitive Projections.
Record hSet : Type := BuildhSet { setT : Type; iss : True }. Ltac head_hnf_under_binders x := matcheval hnf in x with
| ?f _ => head_hnf_under_binders f
| (fun y => ?f y) => head_hnf_under_binders f
| ?y => y end. Goalforall s : hSet, True. intros. let x := head_hnf_under_binders setT in pose x.
set (foo := eq_refl (@setT )). generalize foo. simpl. cbn. Abort. End A.
Module A'. Set Universe Polymorphism. Set Primitive Projections.
Record hSet (A : Type) : Type := BuildhSet { setT : Type; iss : True }. Ltac head_hnf_under_binders x := matchevalcompute in x with
| ?f _ => head_hnf_under_binders f
| (fun y => ?f y) => head_hnf_under_binders f
| ?y => y end. Goalforall s : @hSet nat, True. intros. let x := head_hnf_under_binders setT in pose x.
set (foo := eq_refl (@setT nat)). generalize foo. simpl. cbn. Abort. End A'.
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.