GV70 is statically satisfied by reduction over representative typed
roadmap deltas. The assurance covers every governed item-progress class,
phase progression, and the SemVer-independent type of
governanceDelta.
{-# OPTIONS --safe #-}
module Govenv.Assurance.GV70 where
open import Agda.Builtin.Equality using (_≡_; refl)
open import Agda.Builtin.List using (List; []; _∷_)
open import Agda.Builtin.Nat using (Nat)
open import Govenv.Kernel.Assurance using (StaticEvidence; staticEvidence)
open import Govenv.Kernel.Identifier using (P; GV; GVR; someIdentifier)
open import Govenv.Kernel.Release using
( GovernanceDeltaResult; RoadmapSnapshot; governanceDelta
; roadmapSnapshot; snapshotAbsent; snapshotActive
; snapshotItem; validDelta; governanceDeltaValue; impact
; introduced; advanced; completed; cancelledProgress
; supersededProgress; phaseIntroduced; phaseUnchanged
; phaseAdvanced; roadmapCompleted )
open import Govenv.Kernel.Roadmap using
( Roadmap; done; todo; cancelled; superseded; roadmapOf
; _■; _▣; _✓; _◇; _×; _↪_; _├_ )
currentTodo : Roadmap
currentTodo = roadmapOf
((P 1 "phase" ▣) (GV 1 "same" ◇))
currentDone : Roadmap
currentDone = roadmapOf
((P 1 "phase" ▣)
((GV 1 "same" ✓) ├ (GV 99 "keep-active" ◇)))
currentCancelled : Roadmap
currentCancelled = roadmapOf
((P 1 "phase" ▣)
((GV 1 "same" ×) ├ (GV 99 "keep-active" ◇)))
currentSuperseded : Roadmap
currentSuperseded = roadmapOf
((P 1 "phase" ▣)
((GV 1 "same" ↪ GVR 2) ├ (GV 2 "replacement" ◇)))
currentPhase2 : Roadmap
currentPhase2 = roadmapOf
((P 2 "phase-2" ▣) (GV 3 "new" ◇))
completeRoadmap : Roadmap
completeRoadmap = roadmapOf
((P 1 "phase" ■) (GV 1 "same" ×))
previousTodo : RoadmapSnapshot
previousTodo = roadmapSnapshot
(snapshotActive 1)
(snapshotItem 1 1 "same" todo ∷ [])
previousTodoWithSentinel : RoadmapSnapshot
previousTodoWithSentinel = roadmapSnapshot
(snapshotActive 1)
( snapshotItem 1 1 "same" todo
∷ snapshotItem 99 1 "keep-active" todo
∷ [] )
previousTwoTodos : RoadmapSnapshot
previousTwoTodos = roadmapSnapshot
(snapshotActive 1)
( snapshotItem 1 1 "same" todo
∷ snapshotItem 2 1 "replacement" todo
∷ [] )
previousActiveEmpty : RoadmapSnapshot
previousActiveEmpty = roadmapSnapshot (snapshotActive 1) []
previousCancelled : RoadmapSnapshot
previousCancelled = roadmapSnapshot
(snapshotActive 1)
(snapshotItem 1 1 "same" cancelled ∷ [])
introducedExpected : GovernanceDeltaResult
introducedExpected = validDelta
(governanceDeltaValue
(impact (someIdentifier (GV 1 "same")) todo introduced ∷ [])
(phaseIntroduced (someIdentifier (P 1 "phase"))))
advancedExpected : GovernanceDeltaResult
advancedExpected = validDelta
(governanceDeltaValue
(impact (someIdentifier (GV 1 "same")) todo advanced ∷ [])
(phaseUnchanged (someIdentifier (P 1 "phase"))))
completedExpected : GovernanceDeltaResult
completedExpected = validDelta
(governanceDeltaValue
(impact (someIdentifier (GV 1 "same")) done completed ∷ [])
(phaseUnchanged (someIdentifier (P 1 "phase"))))
cancelledExpected : GovernanceDeltaResult
cancelledExpected = validDelta
(governanceDeltaValue
(impact (someIdentifier (GV 1 "same")) cancelled cancelledProgress ∷ [])
(phaseUnchanged (someIdentifier (P 1 "phase"))))
supersededExpected : GovernanceDeltaResult
supersededExpected = validDelta
(governanceDeltaValue
( impact (someIdentifier (GV 1 "same"))
(superseded (GVR 2)) (supersededProgress (GVR 2))
∷ [] )
(phaseUnchanged (someIdentifier (P 1 "phase"))))
phaseAdvancedExpected : GovernanceDeltaResult
phaseAdvancedExpected = validDelta
(governanceDeltaValue
(impact (someIdentifier (GV 3 "new")) todo introduced ∷ [])
(phaseAdvanced
(someIdentifier (P 1 ""))
(someIdentifier (P 2 "phase-2"))))
roadmapCompletedExpected : GovernanceDeltaResult
roadmapCompletedExpected = validDelta
(governanceDeltaValue []
(roadmapCompleted (someIdentifier (P 1 ""))))
record GV70Proposition : Set where
constructor gv70Satisfied
field
introducedClassified :
governanceDelta (roadmapSnapshot snapshotAbsent []) [] currentTodo ≡
introducedExpected
advancedClassified :
governanceDelta previousTodo (1 ∷ []) currentTodo ≡ advancedExpected
completedClassified :
governanceDelta previousTodoWithSentinel [] currentDone ≡ completedExpected
cancelledClassified :
governanceDelta previousTodoWithSentinel [] currentCancelled ≡ cancelledExpected
supersededClassified :
governanceDelta previousTwoTodos [] currentSuperseded ≡
supersededExpected
phaseAdvanceClassified :
governanceDelta previousActiveEmpty [] currentPhase2 ≡
phaseAdvancedExpected
roadmapCompletionClassified :
governanceDelta previousCancelled [] completeRoadmap ≡
roadmapCompletedExpected
semverIndependent :
RoadmapSnapshot → List Nat → Roadmap → GovernanceDeltaResult
proposition : Set
proposition = GV70Proposition
evidence : StaticEvidence 70
evidence = staticEvidence proposition
(gv70Satisfied refl refl refl refl refl refl refl governanceDelta)