GV3 is statically satisfied by exhaustive construction and
elimination of the three governed Verdict cases.
{-# OPTIONS --safe #-}
module Govenv.Assurance.GV3 where
open import Agda.Builtin.Bool using (Bool; true)
open import Agda.Builtin.Equality using (_≡_; refl)
open import Agda.Builtin.Unit using (⊤)
open import Govenv.Kernel.Assurance using (StaticEvidence; staticEvidence)
open import Govenv.Kernel.Verdict using (Verdict; holds; violated; unknown)
verdictCovered : Verdict ⊤ ⊤ → Bool
verdictCovered holds = true
verdictCovered (violated diagnostic) = true
verdictCovered (unknown obligation) = true
Proposition : Set
Proposition = (verdict : Verdict ⊤ ⊤) → verdictCovered verdict ≡ true
proof : Proposition
proof holds = refl
proof (violated diagnostic) = refl
proof (unknown obligation) = refl
evidence : StaticEvidence 3
evidence = staticEvidence Proposition proof