Skip to content

Commit 4c73b78

Browse files
authored
Fix per_univ_elem (#58)
1 parent 80178d3 commit 4c73b78

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

theories/Core/Semantic/PER.v

+9-8
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ From Coq Require Import Lia PeanoNat Relation_Definitions RelationClasses.
22
From Equations Require Import Equations.
33
From Mcltt Require Import Base Domain Evaluate LibTactics Readback Syntax System.
44

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).
99

1010
Generalizable All Variables.
1111

@@ -93,7 +93,8 @@ Section Per_univ_elem_core_def.
9393
(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') ->
9494
{{ DF Π a p B ≈ Π a' p' B' ∈ per_univ_elem_core ↘ elem_rel }} }
9595
| 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 }} }
9798
.
9899

99100
Hypothesis
@@ -118,7 +119,7 @@ Section Per_univ_elem_core_def.
118119
motive d{{{ Π A p B }}} d{{{ Π A' p' B' }}} elem_rel).
119120

120121
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)).
122123

123124
#[derive(equations=no, eliminator=no)]
124125
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.
132133
mk_rel_mod_eval b b' evb evb' (conj _ (per_univ_elem_core_strong_ind _ _ _ Rel))
133134
end)
134135
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'.
136137

137138
End Per_univ_elem_core_def.
138139

@@ -184,7 +185,7 @@ Section Per_univ_elem_ind_def.
184185
motive i d{{{ Π A p B }}} d{{{ Π A' p' B' }}} elem_rel).
185186

186187
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)).
188189

189190
#[local]
190191
Ltac def_simp := simp per_univ_elem in *.

theories/Core/Semantic/PERLemmas.v

+1-1
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ Proof.
257257
}
258258
firstorder.
259259
- split.
260-
+ econstructor.
260+
+ econstructor; mauto.
261261
+ intros; split; mauto.
262262
Qed.
263263

0 commit comments

Comments
 (0)