Repository navigation
Initial release
Initial release of HOL4 formalization of a theory of specifications, components, contracts, and compositionality.
Requirements:
- Poly/ML 5.7.1 (or later)
- HOL4 trindemossen-1
The default Makefile task, which assumes Holmake is available on the system, builds all core HOL4 theories:
makeList of HOL4 files
folStringScript.sml: first-order logic (FOL) with string identifiers, based on the FOL formalization in HOL4 examples, port from Harrison's HOL Light formalizationfolStringInterpScript.sml: some simple first-order theories using string identifiers, for validationcompSpecUtilityScript.sml: some utility definitions and resultscompSpecScript.sml: definition of abstract syntax for specifications, components, and predicates, and definition of proof systemscompSpecMetaScript.sml: semantics and metatheory of specifications and components, including proof system soundnesscompSpecFolScript.sml: interpretation as first-order theorycompSpecExampleScript.sml: examples of proof system usemitlScript.sml: MITL formal semanticscompSpecMitlScript.sml: instantiation of specifications for MITLcompSpecMitlFLDScript.sml: instantiation for a fuel level display (FLD) system
Key definitions and results
First-order logic
- The abstract syntax of FOL and satisfaction relation for FOL that uses strings for atomic propositions in
folStringScript.sml: - Equivalence of
sholdsrelation withholdsrelation that uses numbers for atomic propositions from HOL4 examples infolStringScript.sml:
Specification language syntax and semantics
- The (non-extended) specification language abstract syntax in
compSpecScript.sml: - Proof system for the non-extended specification language as an inductive predicate in
compSpecScript.sml:Inductive spec_proof: (* defn spec_holds *) ...(line 451)
- Semantics of the (non-extended) specification language in
compSpecMetaScript.sml:
Specification language metatheory
- Interpretation of the (non-extended) specification language as a FOL theory in
compSpecFolScript.sml: - Translation of (non-extended) specification language to FOL formulas in
compSpecFolScript.sml: - Theorem 1: soundness of specification language predicate translation to FOL in
compSpecFolScript.sml: - Theorem 2: proof system soundness w.r.t. specification language semantics in
compSpecMetaScript.sml: - Soundness of decomposition of proof of a specification language predicate
c1 * c2 * c3 : S0into proofs of individual components and specification refinement proof incompSpecMetaScript.sml:Theorem compositionality_contracts_three: ...(line 1918)
Specification language and proof system examples
- Example 4: compositional specification and proof example in
compSpecExampleScript.sml:Definition example_Ps: ...(line 135, premises)Definition example_goal: ...(line 143, goal)Theorem example_refine_spec_holds: ...(line 413, proof system proof of goal assuming premises)Theorem example_refine_sem_spec_holds: ...(line 577, semantic predicate theorem using soundness of proof system)
Extended specification language syntax and semantics
- Interval and MITL abstract syntax in
compSpecScript.sml: - MITL semantics in
mitlScript.sml: - Extended specification language syntax in
compSpecScript.sml: - Extended specification language proof system as inductive predicate in
compSpecScript.sml:Inductive spec_temporal_proof: (* defn spec_temporal_holds *) ...(line 687)
- Semantics of the extended specification language in
compSpecMitlScript.sml: - Metatheory of extended specification language in
compSpecMitlScript.sml:
Fuel-level display (FLD) system model
- FLD instantiation in
compSpecMitlFLDScript.sml:Type state_FLD = ...(line 16, FLD states as mappings from system variables to values)Definition state_holds_FLD: ...(line 23, constraint expressions relation for FLD states)Type timed_word_FLD = ...(line 61, FLD timed words)Definition omega_FLD: ...(line 63, FLD system runs as set of timed words)Definition spec_temporal_holds_FLD_def: ...(line 85, temporal proof system instantiation for FLD)