aboutsummaryrefslogtreecommitdiff
path: root/kernel/type_errors.ml
diff options
context:
space:
mode:
authorGaetan Gilbert2017-05-03 19:16:48 +0200
committerGaetan Gilbert2017-05-03 19:23:39 +0200
commitb12af1535c0ba8cab23e7f9ff18f75688c0e523c (patch)
treed6edac6a07bdb2b36a835bf5c71f62f5e555dab8 /kernel/type_errors.ml
parent3c795ba6b5728e8a0a699ab15c773c52c48f33e4 (diff)
Make congruence reuse discriminate instead of rolling its own.
This changes the produced terms a bit, eg Axiom T : Type. Lemma foo : true = false -> T. Proof. congruence. Qed. used to produce fun H : true = false => let Heq := H : true = false in @eq_rect Type True (fun X : Type => X) I T (@f_equal bool Type (fun t : bool => if t then True else T) true false Heq) now produces fun H : true = false => let Heq : true = false := H in let H0 : False := @eq_ind bool true (fun e : bool => if e then True else False) I false Heq in False_rect T H0 i.e. instead of proving [True = T] by [f_equal] then transporting [I] across this identity, it now proves [False] by [eq_ind] then uses exfalso.
Diffstat (limited to 'kernel/type_errors.ml')
0 files changed, 0 insertions, 0 deletions