Skip to content

Commit 9d1a9e8

Browse files
committed
Fix for new case_elim in HOL (HOL-Theorem-Prover/HOL@64ee5d9)
1 parent 44f3ac1 commit 9d1a9e8

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

language/pure_valueScript.sml

+12
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,17 @@ Proof
313313
\\ fs [v_CASE, v_11, v_distinct]
314314
QED
315315

316+
Theorem v_CASE_elim:
317+
∀f. f (v_CASE v atom cons clos div err) ⇔
318+
(∃b. v = Atom b ∧ f (atom b)) ∨
319+
(∃s t. v = Constructor s t ∧ f (cons s t)) ∨
320+
(∃n y. v = Closure n y ∧ f (clos n y)) ∨
321+
(v = Diverge ∧ f div) ∨
322+
(v = Error ∧ f err)
323+
Proof
324+
qspec_then `v` assume_tac v_nchotomy >> gvs[v_CASE, v_distinct, v_11]
325+
QED
326+
316327
(*
317328
* Register with TypeBase.
318329
*)
@@ -436,6 +447,7 @@ val _ = TypeBase.export
436447
{ ax = TypeBasePure.ORIG TRUTH,
437448
induction = TypeBasePure.ORIG v_bisimulation,
438449
case_def = v_CASE,
450+
case_elim = v_CASE_elim,
439451
case_cong = v_CASE_cong,
440452
case_eq = v_CASE_eq,
441453
nchotomy = v_nchotomy,

0 commit comments

Comments
 (0)