open import Graded.Modality
open import Graded.Usage.Restrictions
open import Definition.Typed.EqualityRelation
open import Definition.Typed.Restrictions
module Graded.Erasure.LogicalRelation.Fundamental.Assumptions
{a} {M : Set a}
{š : Modality M}
(TR : Type-restrictions š)
(UR : Usage-restrictions š)
where
open Modality š
open Type-restrictions TR
open Usage-restrictions UR
open import Definition.Untyped M
open import Definition.Typed TR
open import Definition.Typed.Consequences.Consistency TR
open import Definition.Typed.Properties TR
open import Definition.Typed.Substitution TR
open import Graded.Mode š
open import Graded.Usage š UR
open import Graded.Restrictions š
open import Tools.Nat
open import Tools.Sum
private variable
k kįµ : Nat
ā : DCon (Term 0) _
record Fundamental-assumptionsā» (Ī : Cons kįµ k) : Set a where
no-eta-equality
field
well-resourced : āø[ šįµ ] (Ī .defs)
consistent : Emptyrec-allowed šįµ š ā Consistent Ī
closed-or-no-erased-matches :
No-erased-matches TR UR ā Empty-con (Ī .vars)
instance
⦠no-equality-reflection-or-empty ⦠:
No-equality-reflection or-empty Ī .vars
record Fundamental-assumptions (Ī : Cons kįµ k) : Set a where
no-eta-equality
field
well-formed : ⢠Ī
other-assumptions : Fundamental-assumptionsā» Ī
open Fundamental-assumptionsā» other-assumptions public
fundamental-assumptionsā»ā :
Ā» ā ā āø[ šįµ ] ā ā Fundamental-assumptionsā» (ā Ā» ε)
fundamental-assumptionsā»ā ā«ā āøā = record
{ well-resourced = āøā
; consistent = Ī» _ ā
inhabited-consistent
(ā¢Ė¢Ź·ā·-idSubst (ε ā«ā))
; closed-or-no-erased-matches = injā ε
; no-equality-reflection-or-empty = ε
}
fundamental-assumptionsā :
Ā» ā ā āø[ šįµ ] ā ā Fundamental-assumptions (ā Ā» ε)
fundamental-assumptionsā ā«ā āøā = record
{ well-formed = ε ā«ā
; other-assumptions = fundamental-assumptionsā»ā ā«ā āøā
}