Skip to content

Commit 45fee4c

Browse files
renamed pred_semantics
1 parent f896cfc commit 45fee4c

File tree

1 file changed

+24
-25
lines changed

1 file changed

+24
-25
lines changed

hol/pred_specScript.sml

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -45,27 +45,27 @@ val _ = Hol_datatype `
4545
(* here 'a would be pred and 'b would be bool *)
4646
(**************************************************)
4747

48-
Definition Sem_rule_def:
49-
(Sem_rule (Var x) mv = (ALOOKUP mv x) ) /\
50-
(Sem_rule True _ = SOME T) /\
51-
(Sem_rule False _ = SOME F) /\
52-
(Sem_rule (And p q) mv =
53-
case (Sem_rule p mv, Sem_rule q mv) of
48+
Definition sem_pred_def:
49+
(sem_pred (Var x) mv = (ALOOKUP mv x) ) /\
50+
(sem_pred True _ = SOME T) /\
51+
(sem_pred False _ = SOME F) /\
52+
(sem_pred (And p q) mv =
53+
case (sem_pred p mv, sem_pred q mv) of
5454
| (SOME b, SOME b') => SOME (b ∧ b')
5555
| (_,_) => NONE
5656
) /\
57-
(Sem_rule (Or p q) mv =
58-
case (Sem_rule p mv, Sem_rule q mv) of
57+
(sem_pred (Or p q) mv =
58+
case (sem_pred p mv, sem_pred q mv) of
5959
| (SOME b,SOME b') => SOME (b ∨ b')
6060
| (_,_) => NONE
6161
) /\
62-
(Sem_rule (Not p) mv =
63-
case (Sem_rule p mv) of
62+
(sem_pred (Not p) mv =
63+
case (sem_pred p mv) of
6464
| SOME b => SOME (~b)
6565
| _ => NONE
6666
) /\
67-
(Sem_rule (Implies p q) mv =
68-
case (Sem_rule p mv, Sem_rule q mv) of
67+
(sem_pred (Implies p q) mv =
68+
case (sem_pred p mv, sem_pred q mv) of
6969
| (SOME b,SOME b') => SOME (b ⇒ b')
7070
| (_,_) => NONE
7171
)
@@ -134,7 +134,6 @@ End
134134

135135

136136

137-
(* move to other file the specialized *)
138137
Definition pred_final_def:
139138
pred_final p =
140139
case p of
@@ -147,7 +146,7 @@ End
147146
Definition pred_structure_def:
148147
pred_structure =
149148
<|
150-
sem := Sem_rule;
149+
sem := sem_pred;
151150
sub := mk_substitute_pred;
152151
simp := simp_pred;
153152
final := pred_final;
@@ -180,13 +179,13 @@ Proof
180179
QED
181180

182181

183-
Theorem mem_imp_sem_rule:
182+
Theorem mem_imp_sem_pred:
184183
∀p mv. (∀x. MEM x (FV p) ⇒ (∃b. ALOOKUP mv x = SOME b)) ⇒
185-
Sem_rule p mv ≠ NONE ∧ ∃ b' . Sem_rule p mv = SOME b'
184+
sem_pred p mv ≠ NONE ∧ ∃ b' . sem_pred p mv = SOME b'
186185
Proof
187186
Induct >>
188187
rw[simp_pred_def, FV_def] >> gvs[AllCaseEqs()] >>
189-
gvs[Sem_rule_def, simp_pred_def] >>
188+
gvs[sem_pred_def, simp_pred_def] >>
190189
rpt (BasicProvers.FULL_CASE_TAC >> gvs[])
191190
QED
192191

@@ -195,23 +194,23 @@ QED
195194

196195
Theorem simplification_correct:
197196
∀p mv. (∀x. MEM x (FV p) ⇒ (∃b. ALOOKUP mv x = SOME b)) ⇒
198-
Sem_rule p mv = Sem_rule (simp_pred p) mv
197+
sem_pred p mv = sem_pred (simp_pred p) mv
199198
Proof
200199
Induct_on `p` >-
201-
(rw[simp_pred_def, Sem_rule_def]) >-
202-
(rw[simp_pred_def, Sem_rule_def]) >-
203-
(rw[simp_pred_def, Sem_rule_def]) >>
200+
(rw[simp_pred_def, sem_pred_def]) >-
201+
(rw[simp_pred_def, sem_pred_def]) >-
202+
(rw[simp_pred_def, sem_pred_def]) >>
204203

205204
rpt strip_tac >>
206-
imp_res_tac mem_imp_sem_rule >>
205+
imp_res_tac mem_imp_sem_pred >>
207206

208207
LAST_X_ASSUM (STRIP_ASSUME_TAC o (Q.SPECL [‘mv’])) >>
209208
gvs[FV_def] >>
210-
gvs[Sem_rule_def] >>
209+
gvs[sem_pred_def] >>
211210

212-
rw[Sem_rule_def, simp_pred_def] >>
211+
rw[sem_pred_def, simp_pred_def] >>
213212
rpt (BasicProvers.FULL_CASE_TAC >> gvs[]) >>
214-
gvs[Sem_rule_def, simp_pred_def] >>
213+
gvs[sem_pred_def, simp_pred_def] >>
215214

216215
first_x_assum (strip_assume_tac o (Q.SPECL [‘s’])) >>
217216
imp_res_tac simp_pred_imp_mem >>

0 commit comments

Comments
 (0)