aboutsummaryrefslogtreecommitdiff
path: root/src/Reflection/TypeInversion.v
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-02-13 15:44:11 -0500
committerGravatar Jason Gross <jgross@mit.edu>2017-02-13 15:44:11 -0500
commit589517437b4647ed688f73591f646bc931f24b4b (patch)
treef2685f53ba8ed9226ad77d6828608b046a35722f /src/Reflection/TypeInversion.v
parentd650bb93a89ed1794fb4393a9b478c41674f8b6f (diff)
Better type_inversion
Now we don't loop on [Unit = Unit] hypotheses, clearing them instead.
Diffstat (limited to 'src/Reflection/TypeInversion.v')
-rw-r--r--src/Reflection/TypeInversion.v4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/Reflection/TypeInversion.v b/src/Reflection/TypeInversion.v
index 15986d1a5..30a1ef472 100644
--- a/src/Reflection/TypeInversion.v
+++ b/src/Reflection/TypeInversion.v
@@ -69,9 +69,10 @@ Section language.
Section encode_decode.
Definition flat_type_code (t1 t2 : flat_type base_type_code) : Prop
:= match t1, t2 with
- | Unit, _ => Unit = t2
+ | Unit, Unit => True
| Tbase t1, Tbase t2 => t1 = t2
| Prod A B, Prod A' B' => A = A' /\ B = B'
+ | Unit, _
| Tbase _, _
| Prod _ _, _
=> False
@@ -96,7 +97,6 @@ Section language.
destruct x, y; simpl in *; intro H;
try first [ apply f_equal; assumption
| exfalso; assumption
- | exfalso; abstract congruence
| reflexivity
| apply f_equal2; destruct H; assumption ].
Defined.