proof/: all 23 Isabelle theory files now verify under Isabelle2025-2
Isabelle toolchain replaced (was genuinely 2011, 14+ years stale) and every theory file fixed to actually compile -- most had apparently never been checked under a working Isabelle at all. Fixed the vm_state self-reference in StarForth_Base.thy properly (word_table is now a free-standing global constant, not a circular record field), corrected the word_physics_transparent axiom (was claiming full state equality from mere exec-equivalence, provably too strong), and worked through 14 years of HOL-Library drift plus several missing-hypothesis bugs across the physics-loop and ACL theories. Two genuine (non-tactical) bugs found and left oops-flagged rather than silently resolved: forth_roll's index arithmetic disagrees with both its own test lemma and the real C ROLL implementation (three-way inconsistency), and pm_wf isn't actually preserved by pm_record_hit/pm_record_miss. Both need a decision, not a proof-script fix. Full writeup in FABRIC-2.md item 5.2.
This commit is contained in:
@@ -104,18 +104,18 @@ lemma lock_wf_held:
|
||||
lemma acquire_preserves_wf:
|
||||
assumes "lock_wf s" "valid_thread t"
|
||||
shows "lock_wf (acquire_lock t s)"
|
||||
by (cases s; simp add: acquire_lock_def lock_wf_def assms)
|
||||
using assms by (cases s; simp add: acquire_lock_def lock_wf_def)
|
||||
|
||||
lemma release_preserves_wf:
|
||||
assumes "lock_wf s"
|
||||
shows "lock_wf (release_lock t s)"
|
||||
by (cases s; simp add: release_lock_def lock_wf_def assms)
|
||||
using assms by (cases s; simp add: release_lock_def lock_wf_def)
|
||||
|
||||
(* Two distinct threads cannot both hold the same lock. *)
|
||||
lemma mutex_exclusive:
|
||||
assumes "lock_held_by t s" "lock_held_by u s"
|
||||
shows "t = u"
|
||||
by (cases s; simp add: lock_held_by_def assms; blast)
|
||||
using assms by (cases s; simp add: lock_held_by_def)
|
||||
|
||||
(* =========================================================================
|
||||
Section 5: VM-level lock accessors
|
||||
|
||||
Reference in New Issue
Block a user