open import Graded.Modality
open import Graded.Usage.Restrictions
open import Definition.Typed.EqualityRelation
open import Definition.Typed.Restrictions
open import Graded.Mode.Instances.Zero-one.Variant
import Graded.Mode.Instances.Zero-one
module Graded.Erasure.LogicalRelation.Fundamental.Assumptions
{a} {M : Set a}
{š : Modality M}
{variant : Mode-variant š}
(open Graded.Mode.Instances.Zero-one variant)
(TR : Type-restrictions š)
(UR : Usage-restrictions š Zero-one-isMode)
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.Usage UR
open import Graded.Restrictions.Zero-one š variant
open import Tools.Function
open import Tools.Nat
open import Tools.Product
open import Tools.Relation
open import Tools.Sum as ā
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) à ¬ Higher-quotient-constructors-neutral
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ā»ā :
No-erased-matches TR UR ā ¬ Higher-quotient-constructors-neutral ā
Ā» ā ā āø[ šįµ ] ā ā Fundamental-assumptionsā» (ā Ā» ε)
fundamental-assumptionsā»ā ok ā«ā āøā = record
{ well-resourced =
āøā
; consistent =
Ī» _ ā inhabited-consistent (ā¢Ė¢Ź·ā·-idSubst (ε ā«ā))
; closed-or-no-erased-matches =
ā.map idį¶ (ε ,_) ok
; no-equality-reflection-or-empty =
ε
}
fundamental-assumptionsā :
No-erased-matches TR UR ā ¬ Higher-quotient-constructors-neutral ā
Ā» ā ā āø[ šįµ ] ā ā Fundamental-assumptions (ā Ā» ε)
fundamental-assumptionsā ok ā«ā āøā = record
{ well-formed = ε ā«ā
; other-assumptions = fundamental-assumptionsā»ā ok ā«ā āøā
}