@@ -2,10 +2,10 @@ From Coq Require Import Lia PeanoNat Relation_Definitions RelationClasses.
2
2
From Equations Require Import Equations.
3
3
From Mcltt Require Import Base Domain Evaluate LibTactics Readback Syntax System.
4
4
5
- Notation "'Dom' a ≈ b ∈ R" := (R a b : Prop) (in custom judg at level 90, a custom domain, b custom domain, R constr ).
6
- Notation "'DF' a ≈ b ∈ R ↘ R'" := (R a b R' : Prop) (in custom judg at level 90, a custom domain, b custom domain, R constr , R' constr ).
7
- Notation "'Exp' a ≈ b ∈ R" := (R a b : Prop) (in custom judg at level 90, a custom exp, b custom exp, R constr ).
8
- Notation "'EF' a ≈ b ∈ R ↘ R'" := (R a b R' : Prop) (in custom judg at level 90, a custom exp, b custom exp, R constr , R' constr ).
5
+ Notation "'Dom' a ≈ b ∈ R" := (( R a b : Prop) : Prop) (in custom judg at level 90, a custom domain, b custom domain, R constr ).
6
+ Notation "'DF' a ≈ b ∈ R ↘ R'" := (( R a b R' : Prop) : Prop) (in custom judg at level 90, a custom domain, b custom domain, R constr , R' constr ).
7
+ Notation "'Exp' a ≈ b ∈ R" := (R a b : ( Prop : Type) ) (in custom judg at level 90, a custom exp, b custom exp, R constr ).
8
+ Notation "'EF' a ≈ b ∈ R ↘ R'" := (R a b R' : ( Prop : Type) ) (in custom judg at level 90, a custom exp, b custom exp, R constr , R' constr ).
9
9
10
10
Generalizable All Variables .
11
11
@@ -93,7 +93,8 @@ Section Per_univ_elem_core_def.
93
93
(forall f f', elem_rel f f' = forall {c c'} (equiv_c_c' : {{ Dom c ≈ c' ∈ in_rel }}), rel_mod_app (out_rel equiv_c_c') f c f' c') ->
94
94
{{ DF Π a p B ≈ Π a' p' B' ∈ per_univ_elem_core ↘ elem_rel }} }
95
95
| per_univ_elem_core_neut :
96
- `{ {{ DF ⇑ a b ≈ ⇑ a' b' ∈ per_univ_elem_core ↘ per_ne }} }
96
+ `{ {{ Dom b ≈ b' ∈ per_bot }} ->
97
+ {{ DF ⇑ a b ≈ ⇑ a' b' ∈ per_univ_elem_core ↘ per_ne }} }
97
98
.
98
99
99
100
Hypothesis
@@ -118,7 +119,7 @@ Section Per_univ_elem_core_def.
118
119
motive d{{{ Π A p B }}} d{{{ Π A' p' B' }}} elem_rel).
119
120
120
121
Hypothesis
121
- (case_ne : (forall {a b a' b'}, motive d{{{ ⇑ a b }}} d{{{ ⇑ a' b' }}} per_ne)).
122
+ (case_ne : (forall {a b a' b'}, {{ Dom b ≈ b' ∈ per_bot }} -> motive d{{{ ⇑ a b }}} d{{{ ⇑ a' b' }}} per_ne)).
122
123
123
124
#[derive(equations=no, eliminator=no)]
124
125
Equations per_univ_elem_core_strong_ind a b R (H : {{ DF a ≈ b ∈ per_univ_elem_core ↘ R }}) : {{ DF a ≈ b ∈ motive ↘ R }} :=
@@ -132,7 +133,7 @@ Section Per_univ_elem_core_def.
132
133
mk_rel_mod_eval b b' evb evb' (conj _ (per_univ_elem_core_strong_ind _ _ _ Rel))
133
134
end )
134
135
HE;
135
- per_univ_elem_core_strong_ind a b R per_univ_elem_core_neut := case_ne.
136
+ per_univ_elem_core_strong_ind a b R ( per_univ_elem_core_neut equiv_b_b') := case_ne equiv_b_b' .
136
137
137
138
End Per_univ_elem_core_def.
138
139
@@ -184,7 +185,7 @@ Section Per_univ_elem_ind_def.
184
185
motive i d{{{ Π A p B }}} d{{{ Π A' p' B' }}} elem_rel).
185
186
186
187
Hypothesis
187
- (case_ne : (forall i {a b a' b'}, motive i d{{{ ⇑ a b }}} d{{{ ⇑ a' b' }}} per_ne)).
188
+ (case_ne : (forall i {a b a' b'}, {{ Dom b ≈ b' ∈ per_bot }} -> motive i d{{{ ⇑ a b }}} d{{{ ⇑ a' b' }}} per_ne)).
188
189
189
190
#[local]
190
191
Ltac def_simp := simp per_univ_elem in *.
0 commit comments