------------------------------------------------------------------------
-- A modality with simultaneous support for affine and linear types
------------------------------------------------------------------------

-- It might make sense to replace some of the proofs with automated
-- proofs.

module Graded.Modality.Instances.Linear-or-affine where

import Tools.Algebra
open import Tools.Bool using (T)
open import Tools.Empty
open import Tools.Function
open import Tools.Level
open import Tools.Product
open import Tools.PropositionalEquality as PE
import Tools.Reasoning.PartialOrder
import Tools.Reasoning.PropositionalEquality
open import Tools.Relation
open import Tools.Sum using (_⊎_; inj₁; injβ‚‚)
open import Tools.Unit

import Graded.Modality
open import Graded.FullReduction.Assumptions
import Graded.Modality.Properties.Addition as Addition
import Graded.Modality.Properties.Meet as Meet
import Graded.Modality.Properties.Multiplication as Multiplication
import Graded.Modality.Properties.PartialOrder as PartialOrder
import Graded.Modality.Properties.Star as Star
open import Graded.Modality.Variant lzero
open import Definition.Typed.Restrictions
open import Graded.Usage.Restrictions

open import Definition.Untyped using (BMΞ£; 𝕀; 𝕨)

private variable
  variant : Modality-variant
  trs     : Type-restrictions _
  urs     : Usage-restrictions _

------------------------------------------------------------------------
-- The type

-- Zero, one, at most one, or unlimited.

data Linear-or-affine : Set where
  𝟘 πŸ™ β‰€πŸ™ ≀ω : Linear-or-affine

open Graded.Modality Linear-or-affine
open Tools.Algebra   Linear-or-affine

private variable
  n n₁ nβ‚‚ p q r s s₁ sβ‚‚ z z₁ zβ‚‚ : Linear-or-affine

------------------------------------------------------------------------
-- Basic operations

-- Meet.

infixr 40 _∧_

_∧_ : Linear-or-affine β†’ Linear-or-affine β†’ Linear-or-affine
𝟘  ∧ 𝟘  = 𝟘
πŸ™  ∧ πŸ™  = πŸ™
≀ω ∧ _  = ≀ω
_  ∧ ≀ω = ≀ω
_  ∧ _  = β‰€πŸ™

-- Addition.

infixr 40 _+_

_+_ : Linear-or-affine β†’ Linear-or-affine β†’ Linear-or-affine
𝟘 + q = q
p + 𝟘 = p
_ + _ = ≀ω

-- Multiplication.

infixr 45 _Β·_

_Β·_ : Linear-or-affine β†’ Linear-or-affine β†’ Linear-or-affine
𝟘  · _  = 𝟘
_  · 𝟘  = 𝟘
πŸ™  Β· q  = q
p  Β· πŸ™  = p
β‰€πŸ™ Β· β‰€πŸ™ = β‰€πŸ™
_  Β· _  = ≀ω

-- A decision procedure for equality.

infix 10 _β‰Ÿ_

_β‰Ÿ_ : Decidable (_≑_ {A = Linear-or-affine})
𝟘  β‰Ÿ 𝟘  = yes refl
𝟘  β‰Ÿ πŸ™  = no (Ξ» ())
𝟘  β‰Ÿ β‰€πŸ™ = no (Ξ» ())
𝟘  β‰Ÿ ≀ω = no (Ξ» ())
πŸ™  β‰Ÿ 𝟘  = no (Ξ» ())
πŸ™  β‰Ÿ πŸ™  = yes refl
πŸ™  β‰Ÿ β‰€πŸ™ = no (Ξ» ())
πŸ™  β‰Ÿ ≀ω = no (Ξ» ())
β‰€πŸ™ β‰Ÿ 𝟘  = no (Ξ» ())
β‰€πŸ™ β‰Ÿ πŸ™  = no (Ξ» ())
β‰€πŸ™ β‰Ÿ β‰€πŸ™ = yes refl
β‰€πŸ™ β‰Ÿ ≀ω = no (Ξ» ())
≀ω β‰Ÿ 𝟘  = no (Ξ» ())
≀ω β‰Ÿ πŸ™  = no (Ξ» ())
≀ω β‰Ÿ β‰€πŸ™ = no (Ξ» ())
≀ω β‰Ÿ ≀ω = yes refl

------------------------------------------------------------------------
-- Some properties

-- The inferred ordering relation.

infix 10 _≀_

_≀_ : Linear-or-affine β†’ Linear-or-affine β†’ Set
p ≀ q = p ≑ p ∧ q

-- The quantity ≀ω is smaller than all others.

≀ω≀ : βˆ€ p β†’ ≀ω ≀ p
≀ω≀ _ = refl

-- 𝟘 is maximal.

𝟘-maximal : 𝟘 ≀ p β†’ p ≑ 𝟘
𝟘-maximal {p = 𝟘} refl = refl

-- πŸ™ is maximal.

πŸ™-maximal : πŸ™ ≀ p β†’ p ≑ πŸ™
πŸ™-maximal {p = πŸ™} refl = refl

-- The value ≀ω is a left zero for _+_.

+-zeroΛ‘ : LeftZero ≀ω _+_
+-zeroˑ 𝟘  = refl
+-zeroΛ‘ πŸ™  = refl
+-zeroΛ‘ β‰€πŸ™ = refl
+-zeroΛ‘ ≀ω = refl

-- The value ≀ω is a right zero for _+_.

+-zeroΚ³ : RightZero ≀ω _+_
+-zeroʳ 𝟘  = refl
+-zeroΚ³ πŸ™  = refl
+-zeroΚ³ β‰€πŸ™ = refl
+-zeroΚ³ ≀ω = refl

-- The value ≀ω is a zero for _+_.

+-zero : Zero ≀ω _+_
+-zero = +-zeroΛ‘ , +-zeroΚ³

-- The sum of two non-zero values is ≀ω.

β‰’πŸ˜+β‰’πŸ˜ : p β‰’ 𝟘 β†’ q β‰’ 𝟘 β†’ p + q ≑ ≀ω
β‰’πŸ˜+β‰’πŸ˜ {p = 𝟘}           πŸ˜β‰’πŸ˜ _   = βŠ₯-elim (πŸ˜β‰’πŸ˜ refl)
β‰’πŸ˜+β‰’πŸ˜ {p = πŸ™}  {q = 𝟘}  _   πŸ˜β‰’πŸ˜ = βŠ₯-elim (πŸ˜β‰’πŸ˜ refl)
β‰’πŸ˜+β‰’πŸ˜ {p = πŸ™}  {q = πŸ™}  _   _   = refl
β‰’πŸ˜+β‰’πŸ˜ {p = πŸ™}  {q = β‰€πŸ™} _   _   = refl
β‰’πŸ˜+β‰’πŸ˜ {p = πŸ™}  {q = ≀ω} _   _   = refl
β‰’πŸ˜+β‰’πŸ˜ {p = β‰€πŸ™} {q = 𝟘}  _   πŸ˜β‰’πŸ˜ = βŠ₯-elim (πŸ˜β‰’πŸ˜ refl)
β‰’πŸ˜+β‰’πŸ˜ {p = β‰€πŸ™} {q = πŸ™}  _   _   = refl
β‰’πŸ˜+β‰’πŸ˜ {p = β‰€πŸ™} {q = β‰€πŸ™} _   _   = refl
β‰’πŸ˜+β‰’πŸ˜ {p = β‰€πŸ™} {q = ≀ω} _   _   = refl
β‰’πŸ˜+β‰’πŸ˜ {p = ≀ω} {q = 𝟘}  _   πŸ˜β‰’πŸ˜ = βŠ₯-elim (πŸ˜β‰’πŸ˜ refl)
β‰’πŸ˜+β‰’πŸ˜ {p = ≀ω} {q = πŸ™}  _   _   = refl
β‰’πŸ˜+β‰’πŸ˜ {p = ≀ω} {q = β‰€πŸ™} _   _   = refl
β‰’πŸ˜+β‰’πŸ˜ {p = ≀ω} {q = ≀ω} _   _   = refl

-- If pΒ +Β q is πŸ™, then either p is πŸ™ and q is 𝟘, or q is πŸ™ and p is 𝟘.

+β‰‘πŸ™ : p + q ≑ πŸ™ β†’ p ≑ πŸ™ Γ— q ≑ 𝟘 ⊎ p ≑ 𝟘 Γ— q ≑ πŸ™
+β‰‘πŸ™ {p = 𝟘} {q = πŸ™}  refl = injβ‚‚ (refl , refl)
+β‰‘πŸ™ {p = πŸ™} {q = 𝟘}  refl = inj₁ (refl , refl)
+β‰‘πŸ™ {p = 𝟘} {q = β‰€πŸ™} ()
+β‰‘πŸ™ {p = 𝟘} {q = ≀ω} ()

-- If p ∧ q isΒ πŸ™, then p and q isΒ πŸ™.

βˆ§β‰‘πŸ™ : p ∧ q ≑ πŸ™ β†’ p ≑ πŸ™ Γ— q ≑ πŸ™
βˆ§β‰‘πŸ™ {p = πŸ™} {q = πŸ™}  _  = refl , refl
βˆ§β‰‘πŸ™ {p = 𝟘} {q = 𝟘}  ()
βˆ§β‰‘πŸ™ {p = 𝟘} {q = β‰€πŸ™} ()
βˆ§β‰‘πŸ™ {p = 𝟘} {q = ≀ω} ()

-- Multiplication is idempotent.

Β·-idempotent : Idempotent _Β·_
·-idempotent 𝟘  = refl
Β·-idempotent πŸ™  = refl
Β·-idempotent β‰€πŸ™ = refl
Β·-idempotent ≀ω = refl

-- Multiplication is commutative.

Β·-comm : Commutative _Β·_
Β·-comm = Ξ» where
  𝟘 𝟘   β†’ refl
  𝟘 πŸ™   β†’ refl
  𝟘 β‰€πŸ™  β†’ refl
  𝟘 ≀ω  β†’ refl
  πŸ™ 𝟘   β†’ refl
  πŸ™ πŸ™   β†’ refl
  πŸ™ β‰€πŸ™  β†’ refl
  πŸ™ ≀ω  β†’ refl
  β‰€πŸ™ 𝟘  β†’ refl
  β‰€πŸ™ πŸ™  β†’ refl
  β‰€πŸ™ β‰€πŸ™ β†’ refl
  β‰€πŸ™ ≀ω β†’ refl
  ≀ω 𝟘  β†’ refl
  ≀ω πŸ™  β†’ refl
  ≀ω β‰€πŸ™ β†’ refl
  ≀ω ≀ω β†’ refl

-- If p is not 𝟘, then ≀ω · p is equal to ≀ω.

β‰€Ο‰Β·β‰’πŸ˜ : p β‰’ 𝟘 β†’ ≀ω Β· p ≑ ≀ω
β‰€Ο‰Β·β‰’πŸ˜ {p = 𝟘}  πŸ˜β‰’πŸ˜ = βŠ₯-elim (πŸ˜β‰’πŸ˜ refl)
β‰€Ο‰Β·β‰’πŸ˜ {p = πŸ™}  _   = refl
β‰€Ο‰Β·β‰’πŸ˜ {p = β‰€πŸ™} _   = refl
β‰€Ο‰Β·β‰’πŸ˜ {p = ≀ω} _   = refl

-- The value of ≀ω · p is notΒ πŸ™.

β‰€Ο‰Β·β‰’πŸ™ : βˆ€ p β†’ ≀ω Β· p β‰’ πŸ™
β‰€Ο‰Β·β‰’πŸ™ 𝟘  ()
β‰€Ο‰Β·β‰’πŸ™ πŸ™  ()
β‰€Ο‰Β·β‰’πŸ™ β‰€πŸ™ ()
β‰€Ο‰Β·β‰’πŸ™ ≀ω ()

-- If p is not 𝟘, then πŸ™Β Β·Β p is not 𝟘.

πŸ™Β·β‰’πŸ˜ : p β‰’ 𝟘 β†’ πŸ™ Β· p β‰’ 𝟘
πŸ™Β·β‰’πŸ˜ {p = 𝟘} πŸ˜β‰’πŸ˜ = πŸ˜β‰’πŸ˜

-- If p is not 𝟘, then β‰€πŸ™Β Β·Β p is not 𝟘.

β‰€πŸ™Β·β‰’πŸ˜ : p β‰’ 𝟘 β†’ β‰€πŸ™ Β· p β‰’ 𝟘
β‰€πŸ™Β·β‰’πŸ˜ {p = 𝟘} πŸ˜β‰’πŸ˜ = πŸ˜β‰’πŸ˜

opaque

  -- The grade ≀ω · (pΒ +Β q) is bounded by ≀ω · q.

  ≀ω·+≀≀ω·ʳ : βˆ€ p β†’ ≀ω Β· (p + q) ≀ ≀ω Β· q
  ≀ω·+≀≀ω·ʳ {q = 𝟘}  𝟘  = refl
  ≀ω·+≀≀ω·ʳ {q = πŸ™}  𝟘  = refl
  ≀ω·+≀≀ω·ʳ {q = β‰€πŸ™} 𝟘  = refl
  ≀ω·+≀≀ω·ʳ {q = ≀ω} 𝟘  = refl
  ≀ω·+≀≀ω·ʳ {q = 𝟘}  πŸ™  = refl
  ≀ω·+≀≀ω·ʳ {q = πŸ™}  πŸ™  = refl
  ≀ω·+≀≀ω·ʳ {q = β‰€πŸ™} πŸ™  = refl
  ≀ω·+≀≀ω·ʳ {q = ≀ω} πŸ™  = refl
  ≀ω·+≀≀ω·ʳ {q = 𝟘}  β‰€πŸ™ = refl
  ≀ω·+≀≀ω·ʳ {q = πŸ™}  β‰€πŸ™ = refl
  ≀ω·+≀≀ω·ʳ {q = β‰€πŸ™} β‰€πŸ™ = refl
  ≀ω·+≀≀ω·ʳ {q = ≀ω} β‰€πŸ™ = refl
  ≀ω·+≀≀ω·ʳ {q = 𝟘}  ≀ω = refl
  ≀ω·+≀≀ω·ʳ {q = πŸ™}  ≀ω = refl
  ≀ω·+≀≀ω·ʳ {q = β‰€πŸ™} ≀ω = refl
  ≀ω·+≀≀ω·ʳ {q = ≀ω} ≀ω = refl

------------------------------------------------------------------------
-- The modality without the star operation

-- The "linear or affine types" semiring with meet

linear-or-affine-semiring-with-meet : Semiring-with-meet
linear-or-affine-semiring-with-meet  = record
  { _+_          = _+_
  ; _Β·_          = _Β·_
  ; _∧_          = _∧_
  ; 𝟘            = 𝟘
  ; πŸ™            = πŸ™
  ; Ο‰            = ≀ω
  ; Ο‰β‰€πŸ™          = refl
  ; ω·+≀ω·ʳ      = Ξ» {p = p} β†’ ≀ω·+≀≀ω·ʳ p
  ; is-𝟘?        = _β‰Ÿ 𝟘
  ; +-Β·-Semiring = record
    { isSemiringWithoutAnnihilatingZero = record
      { +-isCommutativeMonoid = record
        { isMonoid = record
          { isSemigroup = record
            { isMagma = record
              { isEquivalence = PE.isEquivalence
              ; βˆ™-cong        = congβ‚‚ _+_
              }
            ; assoc = +-assoc
            }
          ; identity =
                (Ξ» _ β†’ refl)
              , comm∧idΛ‘β‡’idΚ³ +-comm (Ξ» _ β†’ refl)
          }
        ; comm = +-comm
        }
      ; *-cong = congβ‚‚ _Β·_
      ; *-assoc = Β·-assoc
      ; *-identity =
              Β·-identityΛ‘
            , comm∧idΛ‘β‡’idΚ³ Β·-comm Β·-identityΛ‘
      ; distrib =
            Β·-distribΛ‘-+
          , comm∧distrΛ‘β‡’distrΚ³ Β·-comm Β·-distribΛ‘-+
      }
    ; zero =
          (Ξ» _ β†’ refl)
        , comm∧zeΛ‘β‡’zeΚ³ Β·-comm (Ξ» _ β†’ refl)
    }
  ; ∧-Semilattice = record
    { isBand = record
      { isSemigroup = record
        { isMagma = record
          { isEquivalence = PE.isEquivalence
          ; βˆ™-cong        = congβ‚‚ _∧_
          }
        ; assoc = ∧-assoc
        }
      ; idem = Ξ» where
          𝟘  β†’ refl
          πŸ™  β†’ refl
          β‰€πŸ™ β†’ refl
          ≀ω β†’ refl
      }
    ; comm = ∧-comm
    }
  ; ·-distrib-∧ =
        ·-distribˑ-∧
      , comm∧distrΛ‘β‡’distrΚ³ Β·-comm Β·-distribΛ‘-∧
  ; +-distrib-∧ =
        +-distribˑ-∧
      , comm∧distrΛ‘β‡’distrΚ³ +-comm +-distribΛ‘-∧
  }
  where
  +-assoc : Associative _+_
  +-assoc = Ξ» where
    𝟘  _  _  β†’ refl
    πŸ™  𝟘  _  β†’ refl
    πŸ™  πŸ™  𝟘  β†’ refl
    πŸ™  πŸ™  πŸ™  β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  ≀ω β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ ≀ω β†’ refl
    πŸ™  ≀ω 𝟘  β†’ refl
    πŸ™  ≀ω πŸ™  β†’ refl
    πŸ™  ≀ω β‰€πŸ™ β†’ refl
    πŸ™  ≀ω ≀ω β†’ refl
    β‰€πŸ™ 𝟘  _  β†’ refl
    β‰€πŸ™ πŸ™  𝟘  β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ ≀ω 𝟘  β†’ refl
    β‰€πŸ™ ≀ω πŸ™  β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω ≀ω β†’ refl
    ≀ω 𝟘  _  β†’ refl
    ≀ω πŸ™  𝟘  β†’ refl
    ≀ω πŸ™  πŸ™  β†’ refl
    ≀ω πŸ™  β‰€πŸ™ β†’ refl
    ≀ω πŸ™  ≀ω β†’ refl
    ≀ω β‰€πŸ™ 𝟘  β†’ refl
    ≀ω β‰€πŸ™ πŸ™  β†’ refl
    ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    ≀ω β‰€πŸ™ ≀ω β†’ refl
    ≀ω ≀ω 𝟘  β†’ refl
    ≀ω ≀ω πŸ™  β†’ refl
    ≀ω ≀ω β‰€πŸ™ β†’ refl
    ≀ω ≀ω ≀ω β†’ refl

  +-comm : Commutative _+_
  +-comm = Ξ» where
    𝟘 𝟘   β†’ refl
    𝟘 πŸ™   β†’ refl
    𝟘 β‰€πŸ™  β†’ refl
    𝟘 ≀ω  β†’ refl
    πŸ™ 𝟘   β†’ refl
    πŸ™ πŸ™   β†’ refl
    πŸ™ β‰€πŸ™  β†’ refl
    πŸ™ ≀ω  β†’ refl
    β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω β†’ refl
    ≀ω 𝟘  β†’ refl
    ≀ω πŸ™  β†’ refl
    ≀ω β‰€πŸ™ β†’ refl
    ≀ω ≀ω β†’ refl

  Β·-assoc : Associative _Β·_
  Β·-assoc = Ξ» where
    𝟘  _  _  β†’ refl
    πŸ™  𝟘  _  β†’ refl
    πŸ™  πŸ™  𝟘  β†’ refl
    πŸ™  πŸ™  πŸ™  β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  ≀ω β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ ≀ω β†’ refl
    πŸ™  ≀ω 𝟘  β†’ refl
    πŸ™  ≀ω πŸ™  β†’ refl
    πŸ™  ≀ω β‰€πŸ™ β†’ refl
    πŸ™  ≀ω ≀ω β†’ refl
    β‰€πŸ™ 𝟘  _  β†’ refl
    β‰€πŸ™ πŸ™  𝟘  β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ ≀ω 𝟘  β†’ refl
    β‰€πŸ™ ≀ω πŸ™  β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω ≀ω β†’ refl
    ≀ω 𝟘  _  β†’ refl
    ≀ω πŸ™  𝟘  β†’ refl
    ≀ω πŸ™  πŸ™  β†’ refl
    ≀ω πŸ™  β‰€πŸ™ β†’ refl
    ≀ω πŸ™  ≀ω β†’ refl
    ≀ω β‰€πŸ™ 𝟘  β†’ refl
    ≀ω β‰€πŸ™ πŸ™  β†’ refl
    ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    ≀ω β‰€πŸ™ ≀ω β†’ refl
    ≀ω ≀ω 𝟘  β†’ refl
    ≀ω ≀ω πŸ™  β†’ refl
    ≀ω ≀ω β‰€πŸ™ β†’ refl
    ≀ω ≀ω ≀ω β†’ refl

  Β·-identityΛ‘ : LeftIdentity πŸ™ _Β·_
  Β·-identityΛ‘ = Ξ» where
    𝟘  β†’ refl
    πŸ™  β†’ refl
    β‰€πŸ™ β†’ refl
    ≀ω β†’ refl

  Β·-distribΛ‘-+ : _Β·_ DistributesOverΛ‘ _+_
  Β·-distribΛ‘-+ = Ξ» where
    𝟘  _  _  β†’ refl
    πŸ™  𝟘  _  β†’ refl
    πŸ™  πŸ™  𝟘  β†’ refl
    πŸ™  πŸ™  πŸ™  β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  ≀ω β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ ≀ω β†’ refl
    πŸ™  ≀ω 𝟘  β†’ refl
    πŸ™  ≀ω πŸ™  β†’ refl
    πŸ™  ≀ω β‰€πŸ™ β†’ refl
    πŸ™  ≀ω ≀ω β†’ refl
    β‰€πŸ™ 𝟘  _  β†’ refl
    β‰€πŸ™ πŸ™  𝟘  β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ ≀ω 𝟘  β†’ refl
    β‰€πŸ™ ≀ω πŸ™  β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω ≀ω β†’ refl
    ≀ω 𝟘  _  β†’ refl
    ≀ω πŸ™  𝟘  β†’ refl
    ≀ω πŸ™  πŸ™  β†’ refl
    ≀ω πŸ™  β‰€πŸ™ β†’ refl
    ≀ω πŸ™  ≀ω β†’ refl
    ≀ω β‰€πŸ™ 𝟘  β†’ refl
    ≀ω β‰€πŸ™ πŸ™  β†’ refl
    ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    ≀ω β‰€πŸ™ ≀ω β†’ refl
    ≀ω ≀ω 𝟘  β†’ refl
    ≀ω ≀ω πŸ™  β†’ refl
    ≀ω ≀ω β‰€πŸ™ β†’ refl
    ≀ω ≀ω ≀ω β†’ refl

  ∧-assoc : Associative _∧_
  ∧-assoc = λ where
    𝟘  𝟘  𝟘  β†’ refl
    𝟘  𝟘  πŸ™  β†’ refl
    𝟘  𝟘  β‰€πŸ™ β†’ refl
    𝟘  𝟘  ≀ω β†’ refl
    𝟘  πŸ™  𝟘  β†’ refl
    𝟘  πŸ™  πŸ™  β†’ refl
    𝟘  πŸ™  β‰€πŸ™ β†’ refl
    𝟘  πŸ™  ≀ω β†’ refl
    𝟘  β‰€πŸ™ 𝟘  β†’ refl
    𝟘  β‰€πŸ™ πŸ™  β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ ≀ω β†’ refl
    𝟘  ≀ω 𝟘  β†’ refl
    𝟘  ≀ω πŸ™  β†’ refl
    𝟘  ≀ω β‰€πŸ™ β†’ refl
    𝟘  ≀ω ≀ω β†’ refl
    πŸ™  𝟘  𝟘  β†’ refl
    πŸ™  𝟘  πŸ™  β†’ refl
    πŸ™  𝟘  β‰€πŸ™ β†’ refl
    πŸ™  𝟘  ≀ω β†’ refl
    πŸ™  πŸ™  𝟘  β†’ refl
    πŸ™  πŸ™  πŸ™  β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  ≀ω β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ ≀ω β†’ refl
    πŸ™  ≀ω 𝟘  β†’ refl
    πŸ™  ≀ω πŸ™  β†’ refl
    πŸ™  ≀ω β‰€πŸ™ β†’ refl
    πŸ™  ≀ω ≀ω β†’ refl
    β‰€πŸ™ 𝟘  𝟘  β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  ≀ω β†’ refl
    β‰€πŸ™ πŸ™  𝟘  β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ ≀ω 𝟘  β†’ refl
    β‰€πŸ™ ≀ω πŸ™  β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω ≀ω β†’ refl
    ≀ω 𝟘  𝟘  β†’ refl
    ≀ω 𝟘  πŸ™  β†’ refl
    ≀ω 𝟘  β‰€πŸ™ β†’ refl
    ≀ω 𝟘  ≀ω β†’ refl
    ≀ω πŸ™  𝟘  β†’ refl
    ≀ω πŸ™  πŸ™  β†’ refl
    ≀ω πŸ™  β‰€πŸ™ β†’ refl
    ≀ω πŸ™  ≀ω β†’ refl
    ≀ω β‰€πŸ™ 𝟘  β†’ refl
    ≀ω β‰€πŸ™ πŸ™  β†’ refl
    ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    ≀ω β‰€πŸ™ ≀ω β†’ refl
    ≀ω ≀ω 𝟘  β†’ refl
    ≀ω ≀ω πŸ™  β†’ refl
    ≀ω ≀ω β‰€πŸ™ β†’ refl
    ≀ω ≀ω ≀ω β†’ refl

  ∧-comm : Commutative _∧_
  ∧-comm = λ where
    𝟘 𝟘   β†’ refl
    𝟘 πŸ™   β†’ refl
    𝟘 β‰€πŸ™  β†’ refl
    𝟘 ≀ω  β†’ refl
    πŸ™ 𝟘   β†’ refl
    πŸ™ πŸ™   β†’ refl
    πŸ™ β‰€πŸ™  β†’ refl
    πŸ™ ≀ω  β†’ refl
    β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω β†’ refl
    ≀ω 𝟘  β†’ refl
    ≀ω πŸ™  β†’ refl
    ≀ω β‰€πŸ™ β†’ refl
    ≀ω ≀ω β†’ refl

  ·-distribˑ-∧ : _·_ DistributesOverˑ _∧_
  ·-distribˑ-∧ = λ where
    𝟘  𝟘  𝟘  β†’ refl
    𝟘  𝟘  πŸ™  β†’ refl
    𝟘  𝟘  β‰€πŸ™ β†’ refl
    𝟘  𝟘  ≀ω β†’ refl
    𝟘  πŸ™  𝟘  β†’ refl
    𝟘  πŸ™  πŸ™  β†’ refl
    𝟘  πŸ™  β‰€πŸ™ β†’ refl
    𝟘  πŸ™  ≀ω β†’ refl
    𝟘  β‰€πŸ™ 𝟘  β†’ refl
    𝟘  β‰€πŸ™ πŸ™  β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ ≀ω β†’ refl
    𝟘  ≀ω 𝟘  β†’ refl
    𝟘  ≀ω πŸ™  β†’ refl
    𝟘  ≀ω β‰€πŸ™ β†’ refl
    𝟘  ≀ω ≀ω β†’ refl
    πŸ™  𝟘  𝟘  β†’ refl
    πŸ™  𝟘  πŸ™  β†’ refl
    πŸ™  𝟘  β‰€πŸ™ β†’ refl
    πŸ™  𝟘  ≀ω β†’ refl
    πŸ™  πŸ™  𝟘  β†’ refl
    πŸ™  πŸ™  πŸ™  β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  ≀ω β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ ≀ω β†’ refl
    πŸ™  ≀ω 𝟘  β†’ refl
    πŸ™  ≀ω πŸ™  β†’ refl
    πŸ™  ≀ω β‰€πŸ™ β†’ refl
    πŸ™  ≀ω ≀ω β†’ refl
    β‰€πŸ™ 𝟘  𝟘  β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  ≀ω β†’ refl
    β‰€πŸ™ πŸ™  𝟘  β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ ≀ω 𝟘  β†’ refl
    β‰€πŸ™ ≀ω πŸ™  β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω ≀ω β†’ refl
    ≀ω 𝟘  𝟘  β†’ refl
    ≀ω 𝟘  πŸ™  β†’ refl
    ≀ω 𝟘  β‰€πŸ™ β†’ refl
    ≀ω 𝟘  ≀ω β†’ refl
    ≀ω πŸ™  𝟘  β†’ refl
    ≀ω πŸ™  πŸ™  β†’ refl
    ≀ω πŸ™  β‰€πŸ™ β†’ refl
    ≀ω πŸ™  ≀ω β†’ refl
    ≀ω β‰€πŸ™ 𝟘  β†’ refl
    ≀ω β‰€πŸ™ πŸ™  β†’ refl
    ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    ≀ω β‰€πŸ™ ≀ω β†’ refl
    ≀ω ≀ω 𝟘  β†’ refl
    ≀ω ≀ω πŸ™  β†’ refl
    ≀ω ≀ω β‰€πŸ™ β†’ refl
    ≀ω ≀ω ≀ω β†’ refl

  +-distribˑ-∧ : _+_ DistributesOverˑ _∧_
  +-distribˑ-∧ = λ where
    𝟘  𝟘  𝟘  β†’ refl
    𝟘  𝟘  πŸ™  β†’ refl
    𝟘  𝟘  β‰€πŸ™ β†’ refl
    𝟘  𝟘  ≀ω β†’ refl
    𝟘  πŸ™  𝟘  β†’ refl
    𝟘  πŸ™  πŸ™  β†’ refl
    𝟘  πŸ™  β‰€πŸ™ β†’ refl
    𝟘  πŸ™  ≀ω β†’ refl
    𝟘  β‰€πŸ™ 𝟘  β†’ refl
    𝟘  β‰€πŸ™ πŸ™  β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ ≀ω β†’ refl
    𝟘  ≀ω 𝟘  β†’ refl
    𝟘  ≀ω πŸ™  β†’ refl
    𝟘  ≀ω β‰€πŸ™ β†’ refl
    𝟘  ≀ω ≀ω β†’ refl
    πŸ™  𝟘  𝟘  β†’ refl
    πŸ™  𝟘  πŸ™  β†’ refl
    πŸ™  𝟘  β‰€πŸ™ β†’ refl
    πŸ™  𝟘  ≀ω β†’ refl
    πŸ™  πŸ™  𝟘  β†’ refl
    πŸ™  πŸ™  πŸ™  β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  ≀ω β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ ≀ω β†’ refl
    πŸ™  ≀ω 𝟘  β†’ refl
    πŸ™  ≀ω πŸ™  β†’ refl
    πŸ™  ≀ω β‰€πŸ™ β†’ refl
    πŸ™  ≀ω ≀ω β†’ refl
    β‰€πŸ™ 𝟘  𝟘  β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  ≀ω β†’ refl
    β‰€πŸ™ πŸ™  𝟘  β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ ≀ω 𝟘  β†’ refl
    β‰€πŸ™ ≀ω πŸ™  β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω ≀ω β†’ refl
    ≀ω 𝟘  𝟘  β†’ refl
    ≀ω 𝟘  πŸ™  β†’ refl
    ≀ω 𝟘  β‰€πŸ™ β†’ refl
    ≀ω 𝟘  ≀ω β†’ refl
    ≀ω πŸ™  𝟘  β†’ refl
    ≀ω πŸ™  πŸ™  β†’ refl
    ≀ω πŸ™  β‰€πŸ™ β†’ refl
    ≀ω πŸ™  ≀ω β†’ refl
    ≀ω β‰€πŸ™ 𝟘  β†’ refl
    ≀ω β‰€πŸ™ πŸ™  β†’ refl
    ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    ≀ω β‰€πŸ™ ≀ω β†’ refl
    ≀ω ≀ω 𝟘  β†’ refl
    ≀ω ≀ω πŸ™  β†’ refl
    ≀ω ≀ω β‰€πŸ™ β†’ refl
    ≀ω ≀ω ≀ω β†’ refl

instance

  -- The semiring has a well behaved zero

  linear-or-affine-has-well-behaved-zero :
    Has-well-behaved-zero linear-or-affine-semiring-with-meet
  linear-or-affine-has-well-behaved-zero = record
    { non-trivial = Ξ» ()
    ; zero-product = Ξ» where
        {p = 𝟘} _ β†’ inj₁ refl
        {q = 𝟘} _ β†’ injβ‚‚ refl
    ; +-positiveΛ‘ = Ξ» where
        {p = 𝟘} {q = 𝟘}  _  β†’ refl
        {p = 𝟘} {q = πŸ™}  _  β†’ refl
        {p = 𝟘} {q = β‰€πŸ™} ()
        {p = 𝟘} {q = ≀ω} ()
    ; ∧-positiveˑ = λ where
        {p = 𝟘} {q = 𝟘}  _  β†’ refl
        {p = 𝟘} {q = πŸ™}  _  β†’ refl
        {p = 𝟘} {q = β‰€πŸ™} ()
        {p = 𝟘} {q = ≀ω} ()
    }

------------------------------------------------------------------------
-- Star

-- Some requirements of a star operation.

Star-requirements :
  (Linear-or-affine β†’ Linear-or-affine β†’ Linear-or-affine β†’
   Linear-or-affine) β†’
  Set
Star-requirements _βŠ›_β–·_ =
  (βˆ€ {q r} β†’                     (≀ω βŠ› q  β–· r)  ≑ ≀ω) Γ—
  (βˆ€ {p r} β†’                     (p  βŠ› ≀ω β–· r)  ≑ ≀ω) Γ—
  (βˆ€ {p q} β†’ Β¬ (p ≑ 𝟘 Γ— q ≑ 𝟘) β†’ (p  βŠ› q  β–· ≀ω) ≑ ≀ω) Γ—
  (βˆ€ {r} β†’                       (𝟘  βŠ› 𝟘  β–· r)  ≑ 𝟘)  Γ—
  (βˆ€ {p} β†’                       (p  βŠ› πŸ™  β–· πŸ™)  ≑ ≀ω) Γ—
  (βˆ€ {p} β†’                       (p  βŠ› πŸ™  β–· β‰€πŸ™) ≑ ≀ω) Γ—
  (βˆ€ {p} β†’                       (p  βŠ› β‰€πŸ™ β–· πŸ™)  ≑ ≀ω) Γ—
  (βˆ€ {p} β†’                       (p  βŠ› β‰€πŸ™ β–· β‰€πŸ™) ≑ ≀ω) Γ—
                                ((𝟘  βŠ› πŸ™  β–· 𝟘)  ≀ β‰€πŸ™) Γ—
                                ((𝟘  βŠ› β‰€πŸ™ β–· 𝟘)  ≀ β‰€πŸ™) Γ—
                                ((πŸ™  βŠ› 𝟘  β–· 𝟘)  ≀ β‰€πŸ™) Γ—
                                ((β‰€πŸ™ βŠ› 𝟘  β–· 𝟘)  ≀ β‰€πŸ™) Γ—
                                ((πŸ™  βŠ› 𝟘  β–· πŸ™)  ≀ πŸ™)  Γ—
                                ((πŸ™  βŠ› 𝟘  β–· β‰€πŸ™) ≀ β‰€πŸ™) Γ—
                                ((β‰€πŸ™ βŠ› 𝟘  β–· πŸ™)  ≀ β‰€πŸ™) Γ—
                                ((β‰€πŸ™ βŠ› 𝟘  β–· β‰€πŸ™) ≀ β‰€πŸ™) Γ—
                                ((πŸ™  βŠ› πŸ™  β–· 𝟘)  ≀ πŸ™)  Γ—
                                ((πŸ™  βŠ› β‰€πŸ™ β–· 𝟘)  ≀ β‰€πŸ™) Γ—
                                ((β‰€πŸ™ βŠ› πŸ™  β–· 𝟘)  ≀ β‰€πŸ™) Γ—
                                ((β‰€πŸ™ βŠ› β‰€πŸ™ β–· 𝟘)  ≀ β‰€πŸ™)

-- A star operation for a ModalityWithoutβŠ› for Linear-or-affine for
-- which the zero is 𝟘, the one is πŸ™, addition is _+_, multiplication
-- is _·_, and the meet operation is _∧_ has to satisfy the
-- Star-requirements if certain conditions are satisfied.

Star-requirements-requiredβ€² :
  (M : Semiring-with-meet) β†’
  Semiring-with-meet.𝟘   M ≑ 𝟘 β†’
  Semiring-with-meet.πŸ™   M ≑ πŸ™ β†’
  Semiring-with-meet._+_ M ≑ _+_ β†’
  Semiring-with-meet._Β·_ M ≑ _Β·_ β†’
  Semiring-with-meet._∧_ M ≑ _∧_ β†’
  (_βŠ›_β–·_ :
   Linear-or-affine β†’ Linear-or-affine β†’ Linear-or-affine β†’
   Linear-or-affine) β†’
  (βˆ€ p q r β†’ (p βŠ› q β–· r) ≀ q + r Β· (p βŠ› q β–· r)) β†’
  (βˆ€ p q r β†’ (p βŠ› q β–· r) ≀ p) β†’
  (βˆ€ r β†’ _Β·_ SubDistributesOverΚ³ (_βŠ›_β–· r) by _≀_) β†’
  Star-requirements _βŠ›_β–·_
Star-requirements-requiredβ€²
  M refl refl refl refl refl star βŠ›-ineq₁ βŠ›-ineqβ‚‚ Β·-sub-distribΚ³-βŠ› =
    (Ξ» {_ _} β†’ Ο‰βŠ›β–·)
  , (Ξ» {_ _} β†’ βŠ›Ο‰β–·)
  , (Ξ» {_ _} β†’ βŠ›β–·Ο‰ _ _)
  , (Ξ» {r = r} β†’ ≀-antisym
       (begin
          𝟘 βŠ› 𝟘 β–· r  β‰€βŸ¨ βŠ›-ineqβ‚‚ _ _ _ ⟩
          𝟘          ∎)
       (begin
          𝟘              β‰‘Λ˜βŸ¨ Β·-zeroΚ³ (𝟘 βŠ› 𝟘 β–· r) ⟩
          𝟘 βŠ› 𝟘 β–· r Β· 𝟘  β‰€βŸ¨ Β·-sub-distribΚ³-βŠ› _ _ _ _ ⟩
          𝟘 βŠ› 𝟘 β–· r      ∎))
  , (Ξ» {p = p} β†’ ≀-antisym
       (begin
          p βŠ› πŸ™ β–· πŸ™          β‰€βŸ¨ βŠ›-ineq₁ _ _ _ ⟩
          πŸ™ + πŸ™ Β· p βŠ› πŸ™ β–· πŸ™  β‰ˆβŸ¨ β‰’πŸ˜+β‰’πŸ˜ {p = πŸ™} (Ξ» ()) (πŸ™Β·β‰’πŸ˜ βŠ›πŸ™β–·) ⟩
          ≀ω                 ∎)
       (≀ω≀ (p βŠ› πŸ™ β–· πŸ™)))
  , (Ξ» {p = p} β†’ ≀-antisym
       (begin
          p βŠ› πŸ™ β–· β‰€πŸ™           β‰€βŸ¨ βŠ›-ineq₁ _ _ _ ⟩
          πŸ™ + β‰€πŸ™ Β· p βŠ› πŸ™ β–· β‰€πŸ™  β‰ˆβŸ¨ β‰’πŸ˜+β‰’πŸ˜ {p = πŸ™} (Ξ» ()) (β‰€πŸ™Β·β‰’πŸ˜ βŠ›πŸ™β–·) ⟩
          ≀ω                   ∎)
       (≀ω≀ (p βŠ› πŸ™ β–· β‰€πŸ™)))
  , (Ξ» {p = p} β†’ ≀-antisym
       (begin
          p βŠ› β‰€πŸ™ β–· πŸ™           β‰€βŸ¨ βŠ›-ineq₁ _ _ _ ⟩
          β‰€πŸ™ + πŸ™ Β· p βŠ› β‰€πŸ™ β–· πŸ™  β‰ˆβŸ¨ β‰’πŸ˜+β‰’πŸ˜ {p = β‰€πŸ™} (Ξ» ()) (πŸ™Β·β‰’πŸ˜ βŠ›β‰€πŸ™β–·) ⟩
          ≀ω                   ∎)
       (≀ω≀ (p βŠ› β‰€πŸ™ β–· πŸ™)))
  , (Ξ» {p = p} β†’ ≀-antisym
       (begin
          p βŠ› β‰€πŸ™ β–· β‰€πŸ™            β‰€βŸ¨ βŠ›-ineq₁ _ _ _ ⟩
          β‰€πŸ™ + β‰€πŸ™ Β· p βŠ› β‰€πŸ™ β–· β‰€πŸ™  β‰ˆβŸ¨ β‰’πŸ˜+β‰’πŸ˜ {p = β‰€πŸ™} (Ξ» ()) (β‰€πŸ™Β·β‰’πŸ˜ βŠ›β‰€πŸ™β–·) ⟩
          ≀ω                     ∎)
       (≀ω≀ (p βŠ› β‰€πŸ™ β–· β‰€πŸ™)))
  , ∧-greatest-lower-bound
      (βŠ›-ineqβ‚‚ _ _ _)
      (begin
         𝟘 βŠ› πŸ™ β–· 𝟘          β‰€βŸ¨ βŠ›-ineq₁ _ _ _ ⟩
         πŸ™ + 𝟘 Β· 𝟘 βŠ› πŸ™ β–· 𝟘  β‰‘βŸ¨βŸ©
         πŸ™                  ∎)
  , (begin
       𝟘 βŠ› β‰€πŸ™ β–· 𝟘           β‰€βŸ¨ βŠ›-ineq₁ _ _ _ ⟩
       β‰€πŸ™ + 𝟘 Β· 𝟘 βŠ› β‰€πŸ™ β–· 𝟘  β‰‘βŸ¨βŸ©
       β‰€πŸ™                   ∎)
  , ∧-greatest-lower-bound
      (begin
         πŸ™ βŠ› 𝟘 β–· 𝟘          β‰€βŸ¨ βŠ›-ineq₁ _ _ _ ⟩
         𝟘 + 𝟘 Β· πŸ™ βŠ› 𝟘 β–· 𝟘  β‰‘βŸ¨βŸ©
         𝟘                  ∎)
      (βŠ›-ineqβ‚‚ _ _ _)
  , βŠ›-ineqβ‚‚ _ _ _
  , βŠ›-ineqβ‚‚ _ _ _
  , (begin
       πŸ™ βŠ› 𝟘 β–· β‰€πŸ™       β‰€βŸ¨ βŠ›-ineq₁ _ _ _ ⟩
       β‰€πŸ™ Β· πŸ™ βŠ› 𝟘 β–· β‰€πŸ™  β‰€βŸ¨ Β·-monotoneΚ³ {r = β‰€πŸ™} (βŠ›-ineqβ‚‚ _ _ _) ⟩
       β‰€πŸ™ Β· πŸ™           β‰‘βŸ¨βŸ©
       β‰€πŸ™               ∎)
  , βŠ›-ineqβ‚‚ _ _ _
  , βŠ›-ineqβ‚‚ _ _ _
  , βŠ›-ineqβ‚‚ _ _ _
  , (begin
       πŸ™ βŠ› β‰€πŸ™ β–· 𝟘           β‰€βŸ¨ βŠ›-ineq₁ _ _ _ ⟩
       β‰€πŸ™ + 𝟘 Β· πŸ™ βŠ› β‰€πŸ™ β–· 𝟘  β‰‘βŸ¨βŸ©
       β‰€πŸ™                   ∎)
  , βŠ›-ineqβ‚‚ _ _ _
  , βŠ›-ineqβ‚‚ _ _ _
  where
  open Semiring-with-meet M using (Β·-zeroΚ³)
  open PartialOrder M
  open Meet M
  open Multiplication M
  open Tools.Reasoning.PartialOrder ≀-poset

  infix 50 _βŠ›_β–·_

  _βŠ›_β–·_ :
    Linear-or-affine β†’ Linear-or-affine β†’ Linear-or-affine β†’
    Linear-or-affine
  _βŠ›_β–·_ = star

  Ο‰βŠ›β–· : ≀ω βŠ› q β–· r ≑ ≀ω
  Ο‰βŠ›β–· {q = q} {r = r} = ≀-antisym
    (begin
       ≀ω βŠ› q β–· r  β‰€βŸ¨ βŠ›-ineqβ‚‚ _ _ _ ⟩
       ≀ω          ∎)
    (≀ω≀ (≀ω βŠ› q β–· r))

  βŠ›Ο‰β–· : p βŠ› ≀ω β–· r ≑ ≀ω
  βŠ›Ο‰β–· {p = p} {r = r} = ≀-antisym
    (begin
       p βŠ› ≀ω β–· r           β‰€βŸ¨ βŠ›-ineq₁ _ _ _ ⟩
       ≀ω + r Β· p βŠ› ≀ω β–· r  β‰‘βŸ¨ +-zeroΛ‘ (r Β· _) ⟩
       ≀ω                   ∎)
    (≀ω≀ (p βŠ› ≀ω β–· r))

  πŸ™βŠ›β–· : πŸ™ βŠ› q β–· r β‰’ 𝟘
  πŸ™βŠ›β–· {q = q} {r = r} πŸ™βŠ›β–·β‰‘πŸ˜ =
    case begin
      𝟘                β‰‘βŸ¨βŸ©
      𝟘 Β· ≀ω           β‰‘Λ˜βŸ¨ cong (_Β· _) πŸ™βŠ›β–·β‰‘πŸ˜ ⟩
      πŸ™ βŠ› q β–· r Β· ≀ω   β‰€βŸ¨ Β·-sub-distribΚ³-βŠ› _ _ _ _ ⟩
      ≀ω βŠ› q Β· ≀ω β–· r  β‰‘βŸ¨ Ο‰βŠ›β–· ⟩
      ≀ω               ∎
    of Ξ» ()

  β‰€πŸ™βŠ›β–· : β‰€πŸ™ βŠ› q β–· r β‰’ 𝟘
  β‰€πŸ™βŠ›β–· {q = q} {r = r} β‰€πŸ™βŠ›β–·β‰‘πŸ˜ =
    case begin
      𝟘                β‰‘βŸ¨βŸ©
      𝟘 Β· ≀ω           β‰‘Λ˜βŸ¨ cong (_Β· _) β‰€πŸ™βŠ›β–·β‰‘πŸ˜ ⟩
      β‰€πŸ™ βŠ› q β–· r Β· ≀ω  β‰€βŸ¨ Β·-sub-distribΚ³-βŠ› _ _ _ _ ⟩
      ≀ω βŠ› q Β· ≀ω β–· r  β‰‘βŸ¨ Ο‰βŠ›β–· ⟩
      ≀ω               ∎
    of Ξ» ()

  βŠ›πŸ™β–· : p βŠ› πŸ™ β–· r β‰’ 𝟘
  βŠ›πŸ™β–· {p = p} {r = r} βŠ›πŸ™β–·β‰‘πŸ˜ =
    case begin
      𝟘                  β‰‘βŸ¨βŸ©
      𝟘 Β· ≀ω             β‰‘Λ˜βŸ¨ cong (_Β· _) βŠ›πŸ™β–·β‰‘πŸ˜ ⟩
      p βŠ› πŸ™ β–· r Β· ≀ω     β‰€βŸ¨ Β·-sub-distribΚ³-βŠ› _ _ _ _ ⟩
      (p Β· ≀ω) βŠ› ≀ω β–· r  β‰‘βŸ¨ βŠ›Ο‰β–· ⟩
      ≀ω                 ∎
    of Ξ» ()

  βŠ›β‰€πŸ™β–· : p βŠ› β‰€πŸ™ β–· r β‰’ 𝟘
  βŠ›β‰€πŸ™β–· {p = p} {r = r} βŠ›β‰€πŸ™β–·β‰‘πŸ˜ =
    case begin
      𝟘                  β‰‘βŸ¨βŸ©
      𝟘 Β· ≀ω             β‰‘Λ˜βŸ¨ cong (_Β· _) βŠ›β‰€πŸ™β–·β‰‘πŸ˜ ⟩
      p βŠ› β‰€πŸ™ β–· r Β· ≀ω    β‰€βŸ¨ Β·-sub-distribΚ³-βŠ› _ _ _ _ ⟩
      (p Β· ≀ω) βŠ› ≀ω β–· r  β‰‘βŸ¨ βŠ›Ο‰β–· ⟩
      ≀ω                 ∎
    of Ξ» ()

  βŠ›β–·Ο‰ : βˆ€ p q β†’ Β¬ (p ≑ 𝟘 Γ— q ≑ 𝟘) β†’ (p βŠ› q β–· ≀ω) ≑ ≀ω
  βŠ›β–·Ο‰ _ ≀ω _      = βŠ›Ο‰β–·
  βŠ›β–·Ο‰ ≀ω _ _      = Ο‰βŠ›β–·
  βŠ›β–·Ο‰ 𝟘 𝟘 Β¬β‰‘πŸ˜Γ—β‰‘πŸ˜ = βŠ₯-elim (Β¬β‰‘πŸ˜Γ—β‰‘πŸ˜ (refl , refl))
  βŠ›β–·Ο‰ p πŸ™ _      = ≀-antisym
    (begin
       p βŠ› πŸ™ β–· ≀ω           β‰€βŸ¨ βŠ›-ineq₁ _ _ _ ⟩
       πŸ™ + ≀ω Β· p βŠ› πŸ™ β–· ≀ω  β‰‘βŸ¨ cong (πŸ™ +_) (β‰€Ο‰Β·β‰’πŸ˜ βŠ›πŸ™β–·) ⟩
       πŸ™ + ≀ω               β‰‘βŸ¨βŸ©
       ≀ω                   ∎)
    (≀ω≀ (p βŠ› πŸ™ β–· ≀ω))
  βŠ›β–·Ο‰ p β‰€πŸ™ _ = ≀-antisym
    (begin
       p βŠ› β‰€πŸ™ β–· ≀ω            β‰€βŸ¨ βŠ›-ineq₁ _ _ _ ⟩
       β‰€πŸ™ + ≀ω Β· p βŠ› β‰€πŸ™ β–· ≀ω  β‰‘βŸ¨ cong (β‰€πŸ™ +_) (β‰€Ο‰Β·β‰’πŸ˜ βŠ›β‰€πŸ™β–·) ⟩
       β‰€πŸ™ + ≀ω                β‰‘βŸ¨βŸ©
       ≀ω                     ∎)
    (≀ω≀ (p βŠ› πŸ™ β–· ≀ω))
  βŠ›β–·Ο‰ πŸ™ 𝟘 _ = ≀-antisym
    (begin
       πŸ™ βŠ› 𝟘 β–· ≀ω       β‰€βŸ¨ βŠ›-ineq₁ _ _ _ ⟩
       ≀ω Β· πŸ™ βŠ› 𝟘 β–· ≀ω  β‰ˆβŸ¨ β‰€Ο‰Β·β‰’πŸ˜ πŸ™βŠ›β–· ⟩
       ≀ω               ∎)
    (≀ω≀ (πŸ™ βŠ› 𝟘 β–· ≀ω))
  βŠ›β–·Ο‰ β‰€πŸ™ 𝟘 _ = ≀-antisym
    (begin
       β‰€πŸ™ βŠ› 𝟘 β–· ≀ω       β‰€βŸ¨ βŠ›-ineq₁ _ _ _ ⟩
       ≀ω Β· β‰€πŸ™ βŠ› 𝟘 β–· ≀ω  β‰ˆβŸ¨ β‰€Ο‰Β·β‰’πŸ˜ β‰€πŸ™βŠ›β–· ⟩
       ≀ω                ∎)
    (≀ω≀ (β‰€πŸ™ βŠ› 𝟘 β–· ≀ω))

-- Every natrec-star operator for linear-or-affine-semiring-with-meet
-- has to satisfy the Star-requirements.

Star-requirements-required :
  (has-star : Has-star linear-or-affine-semiring-with-meet) β†’
  Star-requirements (Has-star._βŠ›_β–·_ has-star)
Star-requirements-required has-star =
  Star-requirements-requiredβ€²
    linear-or-affine-semiring-with-meet refl refl refl refl refl
    _βŠ›_β–·_ βŠ›-ineq₁ βŠ›-ineqβ‚‚ Β·-sub-distribΚ³-βŠ›
  where
  open Has-star has-star

-- A "greatest" definition of the star operation.

infix 50 _βŠ›_β–·_

_βŠ›_β–·_ :
  Linear-or-affine β†’ Linear-or-affine β†’ Linear-or-affine β†’
  Linear-or-affine
p βŠ› q β–· 𝟘  = p ∧ q
p βŠ› q β–· πŸ™  = p + ≀ω Β· q
p βŠ› q β–· β‰€πŸ™ = p ∧ ≀ω Β· q
p βŠ› q β–· ≀ω = ≀ω Β· (p ∧ q)

-- A simplification lemma for the star operation.

β‰€Ο‰βŠ›β–· : βˆ€ r β†’ ≀ω βŠ› q β–· r ≑ ≀ω
β‰€Ο‰βŠ›β–·          𝟘  = refl
β‰€Ο‰βŠ›β–· {q = 𝟘}  πŸ™  = refl
β‰€Ο‰βŠ›β–· {q = πŸ™}  πŸ™  = refl
β‰€Ο‰βŠ›β–· {q = β‰€πŸ™} πŸ™  = refl
β‰€Ο‰βŠ›β–· {q = ≀ω} πŸ™  = refl
β‰€Ο‰βŠ›β–· {q = 𝟘}  β‰€πŸ™ = refl
β‰€Ο‰βŠ›β–· {q = πŸ™}  β‰€πŸ™ = refl
β‰€Ο‰βŠ›β–· {q = β‰€πŸ™} β‰€πŸ™ = refl
β‰€Ο‰βŠ›β–· {q = ≀ω} β‰€πŸ™ = refl
β‰€Ο‰βŠ›β–·          ≀ω = refl

-- A simplification lemma for the star operation.

βŠ›β‰€Ο‰β–· : βˆ€ r β†’ p βŠ› ≀ω β–· r ≑ ≀ω
βŠ›β‰€Ο‰β–· {p = 𝟘}  𝟘  = refl
βŠ›β‰€Ο‰β–· {p = πŸ™}  𝟘  = refl
βŠ›β‰€Ο‰β–· {p = β‰€πŸ™} 𝟘  = refl
βŠ›β‰€Ο‰β–· {p = ≀ω} 𝟘  = refl
βŠ›β‰€Ο‰β–· {p = 𝟘}  πŸ™  = refl
βŠ›β‰€Ο‰β–· {p = πŸ™}  πŸ™  = refl
βŠ›β‰€Ο‰β–· {p = β‰€πŸ™} πŸ™  = refl
βŠ›β‰€Ο‰β–· {p = ≀ω} πŸ™  = refl
βŠ›β‰€Ο‰β–· {p = 𝟘}  β‰€πŸ™ = refl
βŠ›β‰€Ο‰β–· {p = πŸ™}  β‰€πŸ™ = refl
βŠ›β‰€Ο‰β–· {p = β‰€πŸ™} β‰€πŸ™ = refl
βŠ›β‰€Ο‰β–· {p = ≀ω} β‰€πŸ™ = refl
βŠ›β‰€Ο‰β–· {p = 𝟘}  ≀ω = refl
βŠ›β‰€Ο‰β–· {p = πŸ™}  ≀ω = refl
βŠ›β‰€Ο‰β–· {p = β‰€πŸ™} ≀ω = refl
βŠ›β‰€Ο‰β–· {p = ≀ω} ≀ω = refl

-- A simplification lemma for the star operation.

πŸ˜βŠ›πŸ˜β–· : βˆ€ r β†’ 𝟘 βŠ› 𝟘 β–· r ≑ 𝟘
πŸ˜βŠ›πŸ˜β–· 𝟘  = refl
πŸ˜βŠ›πŸ˜β–· πŸ™  = refl
πŸ˜βŠ›πŸ˜β–· β‰€πŸ™ = refl
πŸ˜βŠ›πŸ˜β–· ≀ω = refl

-- A simplification lemma for the star operation.

βŠ›β–·β‰€Ο‰ : βˆ€ p q β†’ Β¬ (p ≑ 𝟘 Γ— q ≑ 𝟘) β†’ (p βŠ› q β–· ≀ω) ≑ ≀ω
βŠ›β–·β‰€Ο‰ = Ξ» where
  𝟘  𝟘  Β¬β‰‘πŸ˜Γ—β‰‘πŸ˜ β†’ βŠ₯-elim (Β¬β‰‘πŸ˜Γ—β‰‘πŸ˜ (refl , refl))
  πŸ™  𝟘  _      β†’ refl
  β‰€πŸ™ 𝟘  _      β†’ refl
  ≀ω 𝟘  _      β†’ refl
  𝟘  πŸ™  _      β†’ refl
  πŸ™  πŸ™  _      β†’ refl
  β‰€πŸ™ πŸ™  _      β†’ refl
  ≀ω πŸ™  _      β†’ refl
  𝟘  β‰€πŸ™ _      β†’ refl
  πŸ™  β‰€πŸ™ _      β†’ refl
  β‰€πŸ™ β‰€πŸ™ _      β†’ refl
  ≀ω β‰€πŸ™ _      β†’ refl
  p  ≀ω _      β†’ βŠ›β‰€Ο‰β–· {p = p} ≀ω

-- A simplification lemma for the star operation.

βŠ›πŸ™β–·πŸ™ : βˆ€ p β†’ p βŠ› πŸ™ β–· πŸ™ ≑ ≀ω
βŠ›πŸ™β–·πŸ™ 𝟘  = refl
βŠ›πŸ™β–·πŸ™ πŸ™  = refl
βŠ›πŸ™β–·πŸ™ β‰€πŸ™ = refl
βŠ›πŸ™β–·πŸ™ ≀ω = refl

-- A simplification lemma for the star operation.

βŠ›πŸ™β–·β‰€πŸ™ : βˆ€ p β†’ p βŠ› πŸ™ β–· β‰€πŸ™ ≑ ≀ω
βŠ›πŸ™β–·β‰€πŸ™ 𝟘  = refl
βŠ›πŸ™β–·β‰€πŸ™ πŸ™  = refl
βŠ›πŸ™β–·β‰€πŸ™ β‰€πŸ™ = refl
βŠ›πŸ™β–·β‰€πŸ™ ≀ω = refl

-- A simplification lemma for the star operation.

βŠ›β‰€πŸ™β–·πŸ™ : βˆ€ p β†’ p βŠ› β‰€πŸ™ β–· πŸ™ ≑ ≀ω
βŠ›β‰€πŸ™β–·πŸ™ 𝟘  = refl
βŠ›β‰€πŸ™β–·πŸ™ πŸ™  = refl
βŠ›β‰€πŸ™β–·πŸ™ β‰€πŸ™ = refl
βŠ›β‰€πŸ™β–·πŸ™ ≀ω = refl

-- A simplification lemma for the star operation.

βŠ›β‰€πŸ™β–·β‰€πŸ™ : βˆ€ p β†’ p βŠ› β‰€πŸ™ β–· β‰€πŸ™ ≑ ≀ω
βŠ›β‰€πŸ™β–·β‰€πŸ™ 𝟘  = refl
βŠ›β‰€πŸ™β–·β‰€πŸ™ πŸ™  = refl
βŠ›β‰€πŸ™β–·β‰€πŸ™ β‰€πŸ™ = refl
βŠ›β‰€πŸ™β–·β‰€πŸ™ ≀ω = refl

-- The natrec-star operator returns results that are at least as large
-- as those of any other natrec-star operator for
-- linear-or-affine-semiring-with-meet.

βŠ›-greatest :
  (has-star : Has-star linear-or-affine-semiring-with-meet) β†’
  βˆ€ p q r β†’ Has-star._βŠ›_β–·_ has-star p q r ≀ p βŠ› q β–· r
βŠ›-greatest has-star =
  case Star-requirements-required has-star of
    Ξ» (β‰€Ο‰βŠ›β–·β€² , βŠ›β‰€Ο‰β–·β€² , βŠ›β–·β€²β‰€Ο‰ , πŸ˜βŠ›πŸ˜β–·β€² ,
       βŠ›πŸ™β–·β€²πŸ™ , βŠ›πŸ™β–·β€²β‰€πŸ™ , βŠ›β‰€πŸ™β–·β€²πŸ™ , βŠ›β‰€πŸ™β–·β€²β‰€πŸ™ ,
       πŸ˜βŠ›πŸ™β–·β€²πŸ˜ , πŸ˜βŠ›β‰€πŸ™β–·β€²πŸ˜ , πŸ™βŠ›πŸ˜β–·β€²πŸ˜ , β‰€πŸ™βŠ›πŸ˜β–·β€²πŸ˜ ,
       πŸ™βŠ›πŸ˜β–·β€²πŸ™ , πŸ™βŠ›πŸ˜β–·β€²β‰€πŸ™ , β‰€πŸ™βŠ›πŸ˜β–·β€²πŸ™ , β‰€πŸ™βŠ›πŸ˜β–·β€²β‰€πŸ™ ,
       πŸ™βŠ›πŸ™β–·β€²πŸ˜ , πŸ™βŠ›β‰€πŸ™β–·β€²πŸ˜ , β‰€πŸ™βŠ›πŸ™β–·β€²πŸ˜ , β‰€πŸ™βŠ›β‰€πŸ™β–·β€²πŸ˜) β†’ Ξ» where
    ≀ω q r β†’ begin
      ≀ω βŠ› q β–·β€² r  β‰ˆβŸ¨ β‰€Ο‰βŠ›β–·β€² ⟩
      ≀ω           β‰ˆΛ˜βŸ¨ β‰€Ο‰βŠ›β–· r ⟩
      ≀ω βŠ› q β–· r   ∎
    p ≀ω r β†’ begin
      p βŠ› ≀ω β–·β€² r  β‰ˆβŸ¨ βŠ›β‰€Ο‰β–·β€² ⟩
      ≀ω           β‰ˆΛ˜βŸ¨ βŠ›β‰€Ο‰β–· r ⟩
      p βŠ› ≀ω β–· r   ∎
    𝟘 𝟘 r β†’ begin
      𝟘 βŠ› 𝟘 β–·β€² r  β‰ˆβŸ¨ πŸ˜βŠ›πŸ˜β–·β€² ⟩
      𝟘           β‰ˆΛ˜βŸ¨ πŸ˜βŠ›πŸ˜β–· r ⟩
      𝟘 βŠ› 𝟘 β–· r   ∎
    𝟘 πŸ™ ≀ω β†’ begin
      𝟘 βŠ› πŸ™ β–·β€² ≀ω  β‰ˆβŸ¨ βŠ›β–·β€²β‰€Ο‰ (Ξ» { (_ , ()) }) ⟩
      ≀ω           β‰ˆΛ˜βŸ¨ βŠ›β–·β‰€Ο‰ 𝟘 πŸ™ (Ξ» { (_ , ()) }) ⟩
      𝟘 βŠ› πŸ™ β–· ≀ω   ∎
    𝟘 β‰€πŸ™ ≀ω β†’ begin
      𝟘 βŠ› β‰€πŸ™ β–·β€² ≀ω  β‰ˆβŸ¨ βŠ›β–·β€²β‰€Ο‰ (Ξ» { (_ , ()) }) ⟩
      ≀ω            β‰ˆΛ˜βŸ¨ βŠ›β–·β‰€Ο‰ 𝟘 πŸ™ (Ξ» { (_ , ()) }) ⟩
      𝟘 βŠ› β‰€πŸ™ β–· ≀ω   ∎
    πŸ™ q ≀ω β†’ begin
      πŸ™ βŠ› q β–·β€² ≀ω  β‰ˆβŸ¨ βŠ›β–·β€²β‰€Ο‰ (Ξ» { (() , _) }) ⟩
      ≀ω           β‰ˆΛ˜βŸ¨ βŠ›β–·β‰€Ο‰ πŸ™ q (Ξ» { (() , _) }) ⟩
      πŸ™ βŠ› q β–· ≀ω   ∎
    β‰€πŸ™ q ≀ω β†’ begin
      β‰€πŸ™ βŠ› q β–·β€² ≀ω  β‰ˆβŸ¨ βŠ›β–·β€²β‰€Ο‰ (Ξ» { (() , _) }) ⟩
      ≀ω            β‰ˆΛ˜βŸ¨ βŠ›β–·β‰€Ο‰ β‰€πŸ™ q (Ξ» { (() , _) }) ⟩
      β‰€πŸ™ βŠ› q β–· ≀ω   ∎
    p πŸ™ πŸ™ β†’ begin
      p βŠ› πŸ™ β–·β€² πŸ™  β‰ˆβŸ¨ βŠ›πŸ™β–·β€²πŸ™ ⟩
      ≀ω          β‰ˆΛ˜βŸ¨ βŠ›πŸ™β–·πŸ™ p ⟩
      p βŠ› πŸ™ β–· πŸ™   ∎
    p β‰€πŸ™ πŸ™ β†’ begin
      p βŠ› β‰€πŸ™ β–·β€² πŸ™  β‰ˆβŸ¨ βŠ›β‰€πŸ™β–·β€²πŸ™ ⟩
      ≀ω           β‰ˆΛ˜βŸ¨ βŠ›β‰€πŸ™β–·πŸ™ p ⟩
      p βŠ› β‰€πŸ™ β–· πŸ™   ∎
    p πŸ™ β‰€πŸ™ β†’ begin
      p βŠ› πŸ™ β–·β€² β‰€πŸ™  β‰ˆβŸ¨ βŠ›πŸ™β–·β€²β‰€πŸ™ ⟩
      ≀ω           β‰ˆΛ˜βŸ¨ βŠ›πŸ™β–·β‰€πŸ™ p ⟩
      p βŠ› πŸ™ β–· β‰€πŸ™   ∎
    p β‰€πŸ™ β‰€πŸ™ β†’ begin
      p βŠ› β‰€πŸ™ β–·β€² β‰€πŸ™  β‰ˆβŸ¨ βŠ›β‰€πŸ™β–·β€²β‰€πŸ™ ⟩
      ≀ω            β‰ˆΛ˜βŸ¨ βŠ›β‰€πŸ™β–·β‰€πŸ™ p ⟩
      p βŠ› β‰€πŸ™ β–· β‰€πŸ™   ∎
    𝟘 πŸ™ 𝟘 β†’ begin
      𝟘 βŠ› πŸ™ β–·β€² 𝟘  β‰€βŸ¨ πŸ˜βŠ›πŸ™β–·β€²πŸ˜ ⟩
      β‰€πŸ™          ∎
    𝟘 β‰€πŸ™ 𝟘 β†’ begin
      𝟘 βŠ› β‰€πŸ™ β–·β€² 𝟘  β‰€βŸ¨ πŸ˜βŠ›β‰€πŸ™β–·β€²πŸ˜ ⟩
      β‰€πŸ™           ∎
    πŸ™ 𝟘 𝟘 β†’ begin
      πŸ™ βŠ› 𝟘 β–·β€² 𝟘  β‰€βŸ¨ πŸ™βŠ›πŸ˜β–·β€²πŸ˜ ⟩
      β‰€πŸ™          ∎
    β‰€πŸ™ 𝟘 𝟘 β†’ begin
      β‰€πŸ™ βŠ› 𝟘 β–·β€² 𝟘  β‰€βŸ¨ β‰€πŸ™βŠ›πŸ˜β–·β€²πŸ˜ ⟩
      β‰€πŸ™           ∎
    πŸ™ 𝟘 πŸ™ β†’ begin
      πŸ™ βŠ› 𝟘 β–·β€² πŸ™  β‰€βŸ¨ πŸ™βŠ›πŸ˜β–·β€²πŸ™ ⟩
      πŸ™           ∎
    πŸ™ 𝟘 β‰€πŸ™ β†’ begin
      πŸ™ βŠ› 𝟘 β–·β€² β‰€πŸ™  β‰€βŸ¨ πŸ™βŠ›πŸ˜β–·β€²β‰€πŸ™ ⟩
      β‰€πŸ™           ∎
    β‰€πŸ™ 𝟘 πŸ™ β†’ begin
      β‰€πŸ™ βŠ› 𝟘 β–·β€² πŸ™  β‰€βŸ¨ β‰€πŸ™βŠ›πŸ˜β–·β€²πŸ™ ⟩
      β‰€πŸ™           ∎
    β‰€πŸ™ 𝟘 β‰€πŸ™ β†’ begin
      β‰€πŸ™ βŠ› 𝟘 β–·β€² β‰€πŸ™  β‰€βŸ¨ β‰€πŸ™βŠ›πŸ˜β–·β€²β‰€πŸ™ ⟩
      β‰€πŸ™            ∎
    πŸ™ πŸ™ 𝟘 β†’ begin
      πŸ™ βŠ› πŸ™ β–·β€² 𝟘  β‰€βŸ¨ πŸ™βŠ›πŸ™β–·β€²πŸ˜ ⟩
      πŸ™           ∎
    πŸ™ β‰€πŸ™ 𝟘 β†’ begin
      πŸ™ βŠ› β‰€πŸ™ β–·β€² 𝟘  β‰€βŸ¨ πŸ™βŠ›β‰€πŸ™β–·β€²πŸ˜ ⟩
      β‰€πŸ™           ∎
    β‰€πŸ™ πŸ™ 𝟘 β†’ begin
      β‰€πŸ™ βŠ› πŸ™ β–·β€² 𝟘  β‰€βŸ¨ β‰€πŸ™βŠ›πŸ™β–·β€²πŸ˜ ⟩
      β‰€πŸ™           ∎
    β‰€πŸ™ β‰€πŸ™ 𝟘 β†’ begin
      β‰€πŸ™ βŠ› β‰€πŸ™ β–·β€² 𝟘  β‰€βŸ¨ β‰€πŸ™βŠ›β‰€πŸ™β–·β€²πŸ˜ ⟩
      β‰€πŸ™            ∎
  where
  open Has-star has-star renaming (_βŠ›_β–·_ to _βŠ›_β–·β€²_)
  open PartialOrder linear-or-affine-semiring-with-meet
  open Tools.Reasoning.PartialOrder ≀-poset

-- The "greatest" star operator defined above is a proper natrec-star
-- operator.

linear-or-affine-has-star :
  Has-star linear-or-affine-semiring-with-meet
linear-or-affine-has-star = record
  { _βŠ›_β–·_                   = _βŠ›_β–·_
  ; βŠ›-ineq                  = βŠ›-ineq₁ , βŠ›-ineqβ‚‚
  ; +-sub-interchangeable-βŠ› = +-sub-interchangeable-βŠ›
  ; Β·-sub-distribΚ³-βŠ›        = Ξ» r _ _ _ β†’
                                ≀-reflexive (Β·-distribΚ³-βŠ› r _ _ _)
  ; βŠ›-sub-distrib-∧         = Ξ» r β†’
      (Ξ» _ _ _ β†’ ≀-reflexive (βŠ›-distribΛ‘-∧ r _ _ _))
    , (Ξ» _ _ _ β†’ ≀-reflexive (βŠ›-distribΚ³-∧ r _ _ _))
  }
  where
  semiring-with-meet = linear-or-affine-semiring-with-meet

  open Semiring-with-meet semiring-with-meet
    hiding (𝟘; πŸ™; _+_; _Β·_; _∧_; _≀_)
  open PartialOrder semiring-with-meet
  open Addition semiring-with-meet
  open Multiplication semiring-with-meet

  βŠ›-ineq₁ : βˆ€ p q r β†’ p βŠ› q β–· r ≀ q + r Β· p βŠ› q β–· r
  βŠ›-ineq₁ = Ξ» where
    𝟘  𝟘  𝟘  β†’ refl
    𝟘  𝟘  πŸ™  β†’ refl
    𝟘  𝟘  β‰€πŸ™ β†’ refl
    𝟘  𝟘  ≀ω β†’ refl
    𝟘  πŸ™  𝟘  β†’ refl
    𝟘  πŸ™  πŸ™  β†’ refl
    𝟘  πŸ™  β‰€πŸ™ β†’ refl
    𝟘  πŸ™  ≀ω β†’ refl
    𝟘  β‰€πŸ™ 𝟘  β†’ refl
    𝟘  β‰€πŸ™ πŸ™  β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ ≀ω β†’ refl
    𝟘  ≀ω 𝟘  β†’ refl
    𝟘  ≀ω πŸ™  β†’ refl
    𝟘  ≀ω β‰€πŸ™ β†’ refl
    𝟘  ≀ω ≀ω β†’ refl
    πŸ™  𝟘  𝟘  β†’ refl
    πŸ™  𝟘  πŸ™  β†’ refl
    πŸ™  𝟘  β‰€πŸ™ β†’ refl
    πŸ™  𝟘  ≀ω β†’ refl
    πŸ™  πŸ™  𝟘  β†’ refl
    πŸ™  πŸ™  πŸ™  β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  ≀ω β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ ≀ω β†’ refl
    πŸ™  ≀ω 𝟘  β†’ refl
    πŸ™  ≀ω πŸ™  β†’ refl
    πŸ™  ≀ω β‰€πŸ™ β†’ refl
    πŸ™  ≀ω ≀ω β†’ refl
    β‰€πŸ™ 𝟘  𝟘  β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  ≀ω β†’ refl
    β‰€πŸ™ πŸ™  𝟘  β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ ≀ω 𝟘  β†’ refl
    β‰€πŸ™ ≀ω πŸ™  β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω ≀ω β†’ refl
    ≀ω 𝟘  𝟘  β†’ refl
    ≀ω 𝟘  πŸ™  β†’ refl
    ≀ω 𝟘  β‰€πŸ™ β†’ refl
    ≀ω 𝟘  ≀ω β†’ refl
    ≀ω πŸ™  𝟘  β†’ refl
    ≀ω πŸ™  πŸ™  β†’ refl
    ≀ω πŸ™  β‰€πŸ™ β†’ refl
    ≀ω πŸ™  ≀ω β†’ refl
    ≀ω β‰€πŸ™ 𝟘  β†’ refl
    ≀ω β‰€πŸ™ πŸ™  β†’ refl
    ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    ≀ω β‰€πŸ™ ≀ω β†’ refl
    ≀ω ≀ω 𝟘  β†’ refl
    ≀ω ≀ω πŸ™  β†’ refl
    ≀ω ≀ω β‰€πŸ™ β†’ refl
    ≀ω ≀ω ≀ω β†’ refl

  βŠ›-ineqβ‚‚ : βˆ€ p q r β†’ (p βŠ› q β–· r) ≀ p
  βŠ›-ineqβ‚‚ = Ξ» where
    𝟘  𝟘  𝟘  β†’ refl
    𝟘  𝟘  πŸ™  β†’ refl
    𝟘  𝟘  β‰€πŸ™ β†’ refl
    𝟘  𝟘  ≀ω β†’ refl
    𝟘  πŸ™  𝟘  β†’ refl
    𝟘  πŸ™  πŸ™  β†’ refl
    𝟘  πŸ™  β‰€πŸ™ β†’ refl
    𝟘  πŸ™  ≀ω β†’ refl
    𝟘  β‰€πŸ™ 𝟘  β†’ refl
    𝟘  β‰€πŸ™ πŸ™  β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ ≀ω β†’ refl
    𝟘  ≀ω 𝟘  β†’ refl
    𝟘  ≀ω πŸ™  β†’ refl
    𝟘  ≀ω β‰€πŸ™ β†’ refl
    𝟘  ≀ω ≀ω β†’ refl
    πŸ™  𝟘  𝟘  β†’ refl
    πŸ™  𝟘  πŸ™  β†’ refl
    πŸ™  𝟘  β‰€πŸ™ β†’ refl
    πŸ™  𝟘  ≀ω β†’ refl
    πŸ™  πŸ™  𝟘  β†’ refl
    πŸ™  πŸ™  πŸ™  β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  ≀ω β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ ≀ω β†’ refl
    πŸ™  ≀ω 𝟘  β†’ refl
    πŸ™  ≀ω πŸ™  β†’ refl
    πŸ™  ≀ω β‰€πŸ™ β†’ refl
    πŸ™  ≀ω ≀ω β†’ refl
    β‰€πŸ™ 𝟘  𝟘  β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  ≀ω β†’ refl
    β‰€πŸ™ πŸ™  𝟘  β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ ≀ω 𝟘  β†’ refl
    β‰€πŸ™ ≀ω πŸ™  β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω ≀ω β†’ refl
    ≀ω 𝟘  𝟘  β†’ refl
    ≀ω 𝟘  πŸ™  β†’ refl
    ≀ω 𝟘  β‰€πŸ™ β†’ refl
    ≀ω 𝟘  ≀ω β†’ refl
    ≀ω πŸ™  𝟘  β†’ refl
    ≀ω πŸ™  πŸ™  β†’ refl
    ≀ω πŸ™  β‰€πŸ™ β†’ refl
    ≀ω πŸ™  ≀ω β†’ refl
    ≀ω β‰€πŸ™ 𝟘  β†’ refl
    ≀ω β‰€πŸ™ πŸ™  β†’ refl
    ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    ≀ω β‰€πŸ™ ≀ω β†’ refl
    ≀ω ≀ω 𝟘  β†’ refl
    ≀ω ≀ω πŸ™  β†’ refl
    ≀ω ≀ω β‰€πŸ™ β†’ refl
    ≀ω ≀ω ≀ω β†’ refl

  +-sub-interchangeable-βŠ› : βˆ€ r β†’ _+_ SubInterchangeable (_βŠ›_β–· r) by _≀_
  +-sub-interchangeable-βŠ› = Ξ» where
      𝟘 p q pβ€² qβ€² β†’ begin
        (p ∧ q) + (pβ€² ∧ qβ€²)  β‰€βŸ¨ +-sub-interchangeable-∧ p _ _ _ ⟩
        (p + pβ€²) ∧ (q + qβ€²)  ∎
      πŸ™ p q pβ€² qβ€² β†’ begin
        (p + ≀ω Β· q) + (pβ€² + ≀ω Β· qβ€²)  β‰ˆβŸ¨ +-assoc p _ _ ⟩
        p + (≀ω Β· q + (pβ€² + ≀ω Β· qβ€²))  β‰ˆΛ˜βŸ¨ cong (p +_) (+-assoc (≀ω Β· q) _ _) ⟩
        p + ((≀ω Β· q + pβ€²) + ≀ω Β· qβ€²)  β‰ˆβŸ¨ cong (Ξ» q β†’ p + (q + _)) (+-comm _ pβ€²) ⟩
        p + ((pβ€² + ≀ω Β· q) + ≀ω Β· qβ€²)  β‰ˆβŸ¨ cong (p +_) (+-assoc pβ€² _ _) ⟩
        p + (pβ€² + (≀ω Β· q + ≀ω Β· qβ€²))  β‰ˆΛ˜βŸ¨ +-assoc p _ _ ⟩
        (p + pβ€²) + (≀ω Β· q + ≀ω Β· qβ€²)  β‰ˆΛ˜βŸ¨ cong ((p + _) +_) (Β·-distribΛ‘-+ ≀ω q _) ⟩
        (p + pβ€²) + ≀ω Β· (q + qβ€²)       ∎
      β‰€πŸ™ p q pβ€² qβ€² β†’ begin
        (p ∧ ≀ω Β· q) + (pβ€² ∧ ≀ω Β· qβ€²)  β‰€βŸ¨ +-sub-interchangeable-∧ p _ _ _ ⟩
        (p + pβ€²) ∧ (≀ω Β· q + ≀ω Β· qβ€²)  β‰ˆΛ˜βŸ¨ ∧-congΛ‘ (Β·-distribΛ‘-+ ≀ω q _) ⟩
        (p + pβ€²) ∧ ≀ω Β· (q + qβ€²)       ∎
      ≀ω p q pβ€² qβ€² β†’ begin
        ≀ω Β· (p ∧ q) + ≀ω Β· (pβ€² ∧ qβ€²)  β‰ˆΛ˜βŸ¨ Β·-distribΛ‘-+ ≀ω (p ∧ _) _ ⟩
        ≀ω Β· ((p ∧ q) + (pβ€² ∧ qβ€²))     β‰€βŸ¨ Β·-monotoneΚ³ {r = ≀ω} (+-sub-interchangeable-∧ p _ _ _) ⟩
        ≀ω Β· ((p + pβ€²) ∧ (q + qβ€²))     ∎
    where
    open Tools.Reasoning.PartialOrder ≀-poset

  Β·-distribΚ³-βŠ› : βˆ€ r β†’ _Β·_ DistributesOverΚ³ (_βŠ›_β–· r)
  Β·-distribΚ³-βŠ› = Ξ» where
      𝟘 q p pβ€² β†’
        (p ∧ pβ€²) Β· q    β‰‘βŸ¨ Β·-distribΚ³-∧ _ p _ ⟩
        p Β· q ∧ pβ€² Β· q  ∎
      πŸ™ q p pβ€² β†’
        (p + ≀ω Β· pβ€²) Β· q      β‰‘βŸ¨ Β·-distribΚ³-+ _ p _ ⟩
        p Β· q + (≀ω Β· pβ€²) Β· q  β‰‘βŸ¨ cong (p Β· _ +_) (Β·-assoc ≀ω pβ€² _) ⟩
        p Β· q + ≀ω Β· pβ€² Β· q    ∎
      β‰€πŸ™ q p pβ€² β†’
        (p ∧ ≀ω Β· pβ€²) Β· q      β‰‘βŸ¨ Β·-distribΚ³-∧ _ p _ ⟩
        p Β· q ∧ (≀ω Β· pβ€²) Β· q  β‰‘βŸ¨ ∧-congΛ‘ (Β·-assoc ≀ω pβ€² _) ⟩
        p Β· q ∧ ≀ω Β· pβ€² Β· q    ∎
      ≀ω q p pβ€² β†’
        (≀ω Β· (p ∧ pβ€²)) Β· q    β‰‘βŸ¨ Β·-assoc ≀ω (p ∧ _) _ ⟩
        ≀ω Β· (p ∧ pβ€²) Β· q      β‰‘βŸ¨ cong (≀ω Β·_) (Β·-distribΚ³-∧ _ p _) ⟩
        ≀ω Β· (p Β· q ∧ pβ€² Β· q)  ∎
    where
    open Tools.Reasoning.PropositionalEquality

  βŠ›-distribΛ‘-∧ : βˆ€ r β†’ (_βŠ›_β–· r) DistributesOverΛ‘ _∧_
  βŠ›-distribΛ‘-∧ = Ξ» where
      𝟘 p _ _  β†’ lemma p _ _
      πŸ™ p q qβ€² β†’
        p + ≀ω Β· (q ∧ qβ€²)             β‰‘βŸ¨ cong (p +_) (Β·-distribΛ‘-∧ ≀ω q _) ⟩
        p + (≀ω Β· q ∧ ≀ω Β· qβ€²)        β‰‘βŸ¨ +-distribΛ‘-∧ p _ _ ⟩
        (p + ≀ω Β· q) ∧ (p + ≀ω Β· qβ€²)  ∎
      β‰€πŸ™ p q qβ€² β†’
        p ∧ ≀ω Β· (q ∧ qβ€²)             β‰‘βŸ¨ ∧-congΛ‘ (Β·-distribΛ‘-∧ ≀ω q _) ⟩
        p ∧ (≀ω Β· q ∧ ≀ω Β· qβ€²)        β‰‘βŸ¨ lemma p _ _ ⟩
        (p ∧ ≀ω Β· q) ∧ (p ∧ ≀ω Β· qβ€²)  ∎
      ≀ω p q qβ€² β†’
        ≀ω Β· (p ∧ q ∧ qβ€²)             β‰‘βŸ¨ cong (≀ω Β·_) (lemma p _ _) ⟩
        ≀ω Β· ((p ∧ q) ∧ (p ∧ qβ€²))     β‰‘βŸ¨ Β·-distribΛ‘-∧ ≀ω (p ∧ _) _ ⟩
        ≀ω Β· (p ∧ q) ∧ ≀ω Β· (p ∧ qβ€²)  ∎
    where
    open Tools.Reasoning.PropositionalEquality

    lemma = Ξ» p q qβ€² β†’
      p ∧ (q ∧ qβ€²)        β‰‘Λ˜βŸ¨ cong (_∧ _) (∧-idem p) ⟩
      (p ∧ p) ∧ (q ∧ qβ€²)  β‰‘βŸ¨ ∧-assoc p _ _ ⟩
      p ∧ (p ∧ (q ∧ qβ€²))  β‰‘Λ˜βŸ¨ cong (p ∧_) (∧-assoc p _ _) ⟩
      p ∧ ((p ∧ q) ∧ qβ€²)  β‰‘βŸ¨ cong (Ξ» q β†’ p ∧ (q ∧ _)) (∧-comm p _) ⟩
      p ∧ ((q ∧ p) ∧ qβ€²)  β‰‘βŸ¨ cong (p ∧_) (∧-assoc q _ _) ⟩
      p ∧ (q ∧ (p ∧ qβ€²))  β‰‘Λ˜βŸ¨ ∧-assoc p _ _ ⟩
      (p ∧ q) ∧ (p ∧ qβ€²)  ∎

  βŠ›-distribΚ³-∧ : βˆ€ r β†’ (_βŠ›_β–· r) DistributesOverΚ³ _∧_
  βŠ›-distribΚ³-∧ = Ξ» where
      𝟘 _ p _  β†’ lemma _ p _
      πŸ™ q p pβ€² β†’
        (p ∧ pβ€²) + ≀ω Β· q             β‰‘βŸ¨ +-distribΚ³-∧ _ p _ ⟩
        (p + ≀ω Β· q) ∧ (pβ€² + ≀ω Β· q)  ∎
      β‰€πŸ™ q p pβ€² β†’
        (p ∧ pβ€²) ∧ ≀ω Β· q             β‰‘βŸ¨ lemma _ _ _ ⟩
        (p ∧ ≀ω Β· q) ∧ (pβ€² ∧ ≀ω Β· q)  ∎
      ≀ω q p pβ€² β†’
        ≀ω Β· ((p ∧ pβ€²) ∧ q)           β‰‘βŸ¨ cong (≀ω Β·_) (lemma _ p _) ⟩
        ≀ω Β· ((p ∧ q) ∧ (pβ€² ∧ q))     β‰‘βŸ¨ Β·-distribΛ‘-∧ ≀ω (p ∧ _) _ ⟩
        ≀ω Β· (p ∧ q) ∧ ≀ω Β· (pβ€² ∧ q)  ∎
    where
    open Tools.Reasoning.PropositionalEquality

    lemma = Ξ» q p pβ€² β†’
      (p ∧ pβ€²) ∧ q        β‰‘βŸ¨ ∧-comm _ q ⟩
      q ∧ (p ∧ pβ€²)        β‰‘βŸ¨ βŠ›-distribΛ‘-∧ 𝟘 q _ _ ⟩
      (q ∧ p) ∧ (q ∧ pβ€²)  β‰‘βŸ¨ congβ‚‚ _∧_ (∧-comm q _) (∧-comm q _) ⟩
      (p ∧ q) ∧ (pβ€² ∧ q)  ∎

------------------------------------------------------------------------
-- A modality

-- A (not very good) "linear or affine types" modality.
--
-- See Graded.Modality.Instances.Linear-or-affine.Bad for some
-- examples that illustrate in what sense this modality is not very
-- good. The modality linear-or-affine below does not suffer from
-- these problems (see
-- Graded.Modality.Instances.Linear-or-affine.Good), but note that, at
-- the time of writing, this formalisation does not contain any solid
-- evidence showing that linear-or-affine is "correct".

bad-linear-or-affine : Modality-variant β†’ Modality
bad-linear-or-affine variant = record
  { variant            = variant
  ; semiring-with-meet = linear-or-affine-semiring-with-meet
  ; 𝟘-well-behaved     = Ξ» _ β†’ linear-or-affine-has-well-behaved-zero
  ; has-nr             = Ξ» _ β†’
                           Star.has-nr _
                             ⦃ has-star = linear-or-affine-has-star ⦄
  }

------------------------------------------------------------------------
-- A variant of the modality with a custom nr function

-- An nr function for Linear-or-affine.
--
-- The value of nr p 𝟘 z s n is defined in the following way:
--
-- * If pΒ =Β πŸ™, then there are no (non-erased) recursive calls, and the
--   argument is used exactly once in the successor case (excluding
--   erased uses):
--
--     f zero    = f_z
--     f (suc m) = f_s m
--
--   Let us use nΒ +Β z for the zero case, and nΒ +Β s for the successor
--   case: the result is a conservative approximation of these two
--   values (their meet).
--
-- * If p = 𝟘, then there are no (non-erased) recursive
--   calls, and the argument is not used (in non-erased positions) in
--   the successor case:
--
--     f zero    = f_z
--     f (suc m) = f_s
--
--   Let us again use nΒ +Β z for the zero case. For the successor case
--   we use β‰€πŸ™Β Β·Β nΒ +Β s: the argument is not used linearly in the
--   successor case, because it is not used at all, so if n is πŸ™, then
--   the result should be at most β‰€πŸ™ (not πŸ™, because the function is
--   not linear, and not 𝟘, because that would amount to an erased
--   match on a natural number).
--
-- * If pΒ =Β β‰€πŸ™, then there are no (non-erased) recursive calls, and
--   the argument is used at most once in the successor case
--   (excluding erased uses). Let us again use nΒ +Β z for the zero
--   case, and β‰€πŸ™Β Β·Β nΒ +Β s for the successor case.
--
-- * If pΒ = ≀ω, then there are no (non-erased) recursive calls. In the
--   successor case the argument is used an unlimited number of times,
--   so we use ≀ω · nΒ +Β s. In the zero case we use nΒ +Β z, as before.
--
-- All of these cases can be expressed in the following way (note that
-- πŸ™Β βˆ§Β πŸ˜ and πŸ™Β βˆ§Β β‰€πŸ™ are both equal to β‰€πŸ™):
--
--   nr p 𝟘 z s n = ((πŸ™ ∧ p) Β· n + s) ∧ (n + z)
--
-- The value of nrΒ pΒ πŸ™Β zΒ sΒ n is defined in the following way:
--
-- * If p = 𝟘, then we have linear recursion: the argument is used
--   linearly (n), the successor case can occur an unlimited number of
--   times (≀ω · s), and the zero case occurs once (z).
--
-- * If p is πŸ™, β‰€πŸ™ or ≀ω, then there is recursion (≀ω · s), the
--   argument can be used in each recursive call (≀ω · n), and the
--   zero case occurs once (z).
--
-- We get the following definition:
--
--   nr p πŸ™ z s n = (πŸ™ + p) Β· n + ≀ω Β· s + z
--
-- The value of nrΒ pΒ β‰€πŸ™Β zΒ sΒ n is defined in the following way:
--
-- * If p = 𝟘, then we have affine recursion: the argument is used
--   affinely (β‰€πŸ™Β Β·Β n), the successor case can occur an unlimited
--   number of times (≀ω · s), and the zero case occurs at most once
--   (β‰€πŸ™Β Β·Β z).
--
-- * If p is πŸ™, β‰€πŸ™ or ≀ω, then there is recursion (≀ω · s), the
--   argument can be used in each recursive call (≀ω · n), and the
--   zero case occurs at most once (β‰€πŸ™Β Β·Β z).
--
-- We get the following definition:
--
--   nr p πŸ™ z s n = (β‰€πŸ™ + p) Β· n + ≀ω Β· s + β‰€πŸ™ Β· z
--
-- Finally we use the following definition for nrΒ p ≀ω zΒ sΒ n:
--
--   nr _ ≀ω z s n = ≀ω Β· (n + s + z)
--
-- There is recursion (≀ω · s), in the successor case there can be
-- multiple recursive calls (≀ω · n), and the zero case can occur
-- multiple times (≀ω · z).

nr :
  Linear-or-affine β†’ Linear-or-affine β†’
  Linear-or-affine β†’ Linear-or-affine β†’ Linear-or-affine β†’
  Linear-or-affine
nr p 𝟘  z s n = ((πŸ™ ∧ p) Β· n + s) ∧ (n + z)
nr p πŸ™  z s n = (πŸ™  + p) Β· n + ≀ω Β· s +      z
nr p β‰€πŸ™ z s n = (β‰€πŸ™ + p) Β· n + ≀ω Β· s + β‰€πŸ™ Β· z
nr _ ≀ω z s n = ≀ω Β· (n + s + z)

-- The value of nr p r z s n is 𝟘 iff z, s and n are all zero.

nr-𝟘 : βˆ€ r β†’ nr p r z s n ≑ 𝟘 ⇔ (z ≑ 𝟘 Γ— s ≑ 𝟘 Γ— n ≑ 𝟘)
nr-𝟘 r =
    lemma₁ _ r _ _ _
  , Ξ» { (refl , refl , refl) β†’ lemmaβ‚‚ _ r }
  where
  lemma₁ : βˆ€ p r z s n β†’ nr p r z s n ≑ 𝟘 β†’ z ≑ 𝟘 Γ— s ≑ 𝟘 Γ— n ≑ 𝟘
  lemma₁ = Ξ» where
    𝟘  𝟘  𝟘  𝟘  𝟘  refl β†’ refl , refl , refl
    πŸ™  𝟘  𝟘  𝟘  𝟘  refl β†’ refl , refl , refl
    β‰€πŸ™ 𝟘  𝟘  𝟘  𝟘  refl β†’ refl , refl , refl
    ≀ω 𝟘  𝟘  𝟘  𝟘  refl β†’ refl , refl , refl
    𝟘  πŸ™  𝟘  𝟘  𝟘  refl β†’ refl , refl , refl
    πŸ™  πŸ™  𝟘  𝟘  𝟘  refl β†’ refl , refl , refl
    β‰€πŸ™ πŸ™  𝟘  𝟘  𝟘  refl β†’ refl , refl , refl
    ≀ω πŸ™  𝟘  𝟘  𝟘  refl β†’ refl , refl , refl
    𝟘  β‰€πŸ™ 𝟘  𝟘  𝟘  refl β†’ refl , refl , refl
    πŸ™  β‰€πŸ™ 𝟘  𝟘  𝟘  refl β†’ refl , refl , refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  𝟘  refl β†’ refl , refl , refl
    ≀ω β‰€πŸ™ 𝟘  𝟘  𝟘  refl β†’ refl , refl , refl
    _  ≀ω 𝟘  𝟘  𝟘  refl β†’ refl , refl , refl
    𝟘  𝟘  𝟘  𝟘  πŸ™  ()
    𝟘  𝟘  𝟘  𝟘  β‰€πŸ™ ()
    𝟘  𝟘  𝟘  𝟘  ≀ω ()
    𝟘  𝟘  𝟘  πŸ™  𝟘  ()
    𝟘  𝟘  𝟘  πŸ™  πŸ™  ()
    𝟘  𝟘  𝟘  πŸ™  β‰€πŸ™ ()
    𝟘  𝟘  𝟘  πŸ™  ≀ω ()
    𝟘  𝟘  𝟘  β‰€πŸ™ 𝟘  ()
    𝟘  𝟘  𝟘  β‰€πŸ™ πŸ™  ()
    𝟘  𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ ()
    𝟘  𝟘  𝟘  β‰€πŸ™ ≀ω ()
    𝟘  𝟘  𝟘  ≀ω 𝟘  ()
    𝟘  𝟘  𝟘  ≀ω πŸ™  ()
    𝟘  𝟘  𝟘  ≀ω β‰€πŸ™ ()
    𝟘  𝟘  𝟘  ≀ω ≀ω ()
    𝟘  𝟘  πŸ™  𝟘  𝟘  ()
    𝟘  𝟘  πŸ™  𝟘  πŸ™  ()
    𝟘  𝟘  πŸ™  𝟘  β‰€πŸ™ ()
    𝟘  𝟘  πŸ™  𝟘  ≀ω ()
    𝟘  𝟘  πŸ™  πŸ™  𝟘  ()
    𝟘  𝟘  πŸ™  πŸ™  πŸ™  ()
    𝟘  𝟘  πŸ™  πŸ™  β‰€πŸ™ ()
    𝟘  𝟘  πŸ™  πŸ™  ≀ω ()
    𝟘  𝟘  πŸ™  β‰€πŸ™ 𝟘  ()
    𝟘  𝟘  πŸ™  β‰€πŸ™ πŸ™  ()
    𝟘  𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ ()
    𝟘  𝟘  πŸ™  β‰€πŸ™ ≀ω ()
    𝟘  𝟘  πŸ™  ≀ω 𝟘  ()
    𝟘  𝟘  πŸ™  ≀ω πŸ™  ()
    𝟘  𝟘  πŸ™  ≀ω β‰€πŸ™ ()
    𝟘  𝟘  πŸ™  ≀ω ≀ω ()
    𝟘  𝟘  β‰€πŸ™ 𝟘  𝟘  ()
    𝟘  𝟘  β‰€πŸ™ 𝟘  πŸ™  ()
    𝟘  𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ ()
    𝟘  𝟘  β‰€πŸ™ 𝟘  ≀ω ()
    𝟘  𝟘  β‰€πŸ™ πŸ™  𝟘  ()
    𝟘  𝟘  β‰€πŸ™ πŸ™  πŸ™  ()
    𝟘  𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ ()
    𝟘  𝟘  β‰€πŸ™ πŸ™  ≀ω ()
    𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  ()
    𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ πŸ™  ()
    𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ()
    𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω ()
    𝟘  𝟘  β‰€πŸ™ ≀ω 𝟘  ()
    𝟘  𝟘  β‰€πŸ™ ≀ω πŸ™  ()
    𝟘  𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ ()
    𝟘  𝟘  β‰€πŸ™ ≀ω ≀ω ()
    𝟘  𝟘  ≀ω 𝟘  𝟘  ()
    𝟘  𝟘  ≀ω 𝟘  πŸ™  ()
    𝟘  𝟘  ≀ω 𝟘  β‰€πŸ™ ()
    𝟘  𝟘  ≀ω 𝟘  ≀ω ()
    𝟘  𝟘  ≀ω πŸ™  𝟘  ()
    𝟘  𝟘  ≀ω πŸ™  πŸ™  ()
    𝟘  𝟘  ≀ω πŸ™  β‰€πŸ™ ()
    𝟘  𝟘  ≀ω πŸ™  ≀ω ()
    𝟘  𝟘  ≀ω β‰€πŸ™ 𝟘  ()
    𝟘  𝟘  ≀ω β‰€πŸ™ πŸ™  ()
    𝟘  𝟘  ≀ω β‰€πŸ™ β‰€πŸ™ ()
    𝟘  𝟘  ≀ω β‰€πŸ™ ≀ω ()
    𝟘  𝟘  ≀ω ≀ω 𝟘  ()
    𝟘  𝟘  ≀ω ≀ω πŸ™  ()
    𝟘  𝟘  ≀ω ≀ω β‰€πŸ™ ()
    𝟘  𝟘  ≀ω ≀ω ≀ω ()
    πŸ™  𝟘  𝟘  𝟘  πŸ™  ()
    πŸ™  𝟘  𝟘  𝟘  β‰€πŸ™ ()
    πŸ™  𝟘  𝟘  𝟘  ≀ω ()
    πŸ™  𝟘  𝟘  πŸ™  𝟘  ()
    πŸ™  𝟘  𝟘  πŸ™  πŸ™  ()
    πŸ™  𝟘  𝟘  πŸ™  β‰€πŸ™ ()
    πŸ™  𝟘  𝟘  πŸ™  ≀ω ()
    πŸ™  𝟘  𝟘  β‰€πŸ™ 𝟘  ()
    πŸ™  𝟘  𝟘  β‰€πŸ™ πŸ™  ()
    πŸ™  𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ ()
    πŸ™  𝟘  𝟘  β‰€πŸ™ ≀ω ()
    πŸ™  𝟘  𝟘  ≀ω 𝟘  ()
    πŸ™  𝟘  𝟘  ≀ω πŸ™  ()
    πŸ™  𝟘  𝟘  ≀ω β‰€πŸ™ ()
    πŸ™  𝟘  𝟘  ≀ω ≀ω ()
    πŸ™  𝟘  πŸ™  𝟘  𝟘  ()
    πŸ™  𝟘  πŸ™  𝟘  πŸ™  ()
    πŸ™  𝟘  πŸ™  𝟘  β‰€πŸ™ ()
    πŸ™  𝟘  πŸ™  𝟘  ≀ω ()
    πŸ™  𝟘  πŸ™  πŸ™  𝟘  ()
    πŸ™  𝟘  πŸ™  πŸ™  πŸ™  ()
    πŸ™  𝟘  πŸ™  πŸ™  β‰€πŸ™ ()
    πŸ™  𝟘  πŸ™  πŸ™  ≀ω ()
    πŸ™  𝟘  πŸ™  β‰€πŸ™ 𝟘  ()
    πŸ™  𝟘  πŸ™  β‰€πŸ™ πŸ™  ()
    πŸ™  𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ ()
    πŸ™  𝟘  πŸ™  β‰€πŸ™ ≀ω ()
    πŸ™  𝟘  πŸ™  ≀ω 𝟘  ()
    πŸ™  𝟘  πŸ™  ≀ω πŸ™  ()
    πŸ™  𝟘  πŸ™  ≀ω β‰€πŸ™ ()
    πŸ™  𝟘  πŸ™  ≀ω ≀ω ()
    πŸ™  𝟘  β‰€πŸ™ 𝟘  𝟘  ()
    πŸ™  𝟘  β‰€πŸ™ 𝟘  πŸ™  ()
    πŸ™  𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ ()
    πŸ™  𝟘  β‰€πŸ™ 𝟘  ≀ω ()
    πŸ™  𝟘  β‰€πŸ™ πŸ™  𝟘  ()
    πŸ™  𝟘  β‰€πŸ™ πŸ™  πŸ™  ()
    πŸ™  𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ ()
    πŸ™  𝟘  β‰€πŸ™ πŸ™  ≀ω ()
    πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  ()
    πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ πŸ™  ()
    πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ()
    πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω ()
    πŸ™  𝟘  β‰€πŸ™ ≀ω 𝟘  ()
    πŸ™  𝟘  β‰€πŸ™ ≀ω πŸ™  ()
    πŸ™  𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ ()
    πŸ™  𝟘  β‰€πŸ™ ≀ω ≀ω ()
    πŸ™  𝟘  ≀ω 𝟘  𝟘  ()
    πŸ™  𝟘  ≀ω 𝟘  πŸ™  ()
    πŸ™  𝟘  ≀ω 𝟘  β‰€πŸ™ ()
    πŸ™  𝟘  ≀ω 𝟘  ≀ω ()
    πŸ™  𝟘  ≀ω πŸ™  𝟘  ()
    πŸ™  𝟘  ≀ω πŸ™  πŸ™  ()
    πŸ™  𝟘  ≀ω πŸ™  β‰€πŸ™ ()
    πŸ™  𝟘  ≀ω πŸ™  ≀ω ()
    πŸ™  𝟘  ≀ω β‰€πŸ™ 𝟘  ()
    πŸ™  𝟘  ≀ω β‰€πŸ™ πŸ™  ()
    πŸ™  𝟘  ≀ω β‰€πŸ™ β‰€πŸ™ ()
    πŸ™  𝟘  ≀ω β‰€πŸ™ ≀ω ()
    πŸ™  𝟘  ≀ω ≀ω 𝟘  ()
    πŸ™  𝟘  ≀ω ≀ω πŸ™  ()
    πŸ™  𝟘  ≀ω ≀ω β‰€πŸ™ ()
    πŸ™  𝟘  ≀ω ≀ω ≀ω ()
    β‰€πŸ™ 𝟘  𝟘  𝟘  πŸ™  ()
    β‰€πŸ™ 𝟘  𝟘  𝟘  β‰€πŸ™ ()
    β‰€πŸ™ 𝟘  𝟘  𝟘  ≀ω ()
    β‰€πŸ™ 𝟘  𝟘  πŸ™  𝟘  ()
    β‰€πŸ™ 𝟘  𝟘  πŸ™  πŸ™  ()
    β‰€πŸ™ 𝟘  𝟘  πŸ™  β‰€πŸ™ ()
    β‰€πŸ™ 𝟘  𝟘  πŸ™  ≀ω ()
    β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ 𝟘  ()
    β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ πŸ™  ()
    β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ ()
    β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ ≀ω ()
    β‰€πŸ™ 𝟘  𝟘  ≀ω 𝟘  ()
    β‰€πŸ™ 𝟘  𝟘  ≀ω πŸ™  ()
    β‰€πŸ™ 𝟘  𝟘  ≀ω β‰€πŸ™ ()
    β‰€πŸ™ 𝟘  𝟘  ≀ω ≀ω ()
    β‰€πŸ™ 𝟘  πŸ™  𝟘  𝟘  ()
    β‰€πŸ™ 𝟘  πŸ™  𝟘  πŸ™  ()
    β‰€πŸ™ 𝟘  πŸ™  𝟘  β‰€πŸ™ ()
    β‰€πŸ™ 𝟘  πŸ™  𝟘  ≀ω ()
    β‰€πŸ™ 𝟘  πŸ™  πŸ™  𝟘  ()
    β‰€πŸ™ 𝟘  πŸ™  πŸ™  πŸ™  ()
    β‰€πŸ™ 𝟘  πŸ™  πŸ™  β‰€πŸ™ ()
    β‰€πŸ™ 𝟘  πŸ™  πŸ™  ≀ω ()
    β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ 𝟘  ()
    β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ πŸ™  ()
    β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ ()
    β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ ≀ω ()
    β‰€πŸ™ 𝟘  πŸ™  ≀ω 𝟘  ()
    β‰€πŸ™ 𝟘  πŸ™  ≀ω πŸ™  ()
    β‰€πŸ™ 𝟘  πŸ™  ≀ω β‰€πŸ™ ()
    β‰€πŸ™ 𝟘  πŸ™  ≀ω ≀ω ()
    β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  𝟘  ()
    β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  πŸ™  ()
    β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ ()
    β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  ≀ω ()
    β‰€πŸ™ 𝟘  β‰€πŸ™ πŸ™  𝟘  ()
    β‰€πŸ™ 𝟘  β‰€πŸ™ πŸ™  πŸ™  ()
    β‰€πŸ™ 𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ ()
    β‰€πŸ™ 𝟘  β‰€πŸ™ πŸ™  ≀ω ()
    β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  ()
    β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ πŸ™  ()
    β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ()
    β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω ()
    β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω 𝟘  ()
    β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω πŸ™  ()
    β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ ()
    β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω ≀ω ()
    β‰€πŸ™ 𝟘  ≀ω 𝟘  𝟘  ()
    β‰€πŸ™ 𝟘  ≀ω 𝟘  πŸ™  ()
    β‰€πŸ™ 𝟘  ≀ω 𝟘  β‰€πŸ™ ()
    β‰€πŸ™ 𝟘  ≀ω 𝟘  ≀ω ()
    β‰€πŸ™ 𝟘  ≀ω πŸ™  𝟘  ()
    β‰€πŸ™ 𝟘  ≀ω πŸ™  πŸ™  ()
    β‰€πŸ™ 𝟘  ≀ω πŸ™  β‰€πŸ™ ()
    β‰€πŸ™ 𝟘  ≀ω πŸ™  ≀ω ()
    β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ 𝟘  ()
    β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ πŸ™  ()
    β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ β‰€πŸ™ ()
    β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ ≀ω ()
    β‰€πŸ™ 𝟘  ≀ω ≀ω 𝟘  ()
    β‰€πŸ™ 𝟘  ≀ω ≀ω πŸ™  ()
    β‰€πŸ™ 𝟘  ≀ω ≀ω β‰€πŸ™ ()
    β‰€πŸ™ 𝟘  ≀ω ≀ω ≀ω ()
    ≀ω 𝟘  𝟘  𝟘  πŸ™  ()
    ≀ω 𝟘  𝟘  𝟘  β‰€πŸ™ ()
    ≀ω 𝟘  𝟘  𝟘  ≀ω ()
    ≀ω 𝟘  𝟘  πŸ™  𝟘  ()
    ≀ω 𝟘  𝟘  πŸ™  πŸ™  ()
    ≀ω 𝟘  𝟘  πŸ™  β‰€πŸ™ ()
    ≀ω 𝟘  𝟘  πŸ™  ≀ω ()
    ≀ω 𝟘  𝟘  β‰€πŸ™ 𝟘  ()
    ≀ω 𝟘  𝟘  β‰€πŸ™ πŸ™  ()
    ≀ω 𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ ()
    ≀ω 𝟘  𝟘  β‰€πŸ™ ≀ω ()
    ≀ω 𝟘  𝟘  ≀ω 𝟘  ()
    ≀ω 𝟘  𝟘  ≀ω πŸ™  ()
    ≀ω 𝟘  𝟘  ≀ω β‰€πŸ™ ()
    ≀ω 𝟘  𝟘  ≀ω ≀ω ()
    ≀ω 𝟘  πŸ™  𝟘  𝟘  ()
    ≀ω 𝟘  πŸ™  𝟘  πŸ™  ()
    ≀ω 𝟘  πŸ™  𝟘  β‰€πŸ™ ()
    ≀ω 𝟘  πŸ™  𝟘  ≀ω ()
    ≀ω 𝟘  πŸ™  πŸ™  𝟘  ()
    ≀ω 𝟘  πŸ™  πŸ™  πŸ™  ()
    ≀ω 𝟘  πŸ™  πŸ™  β‰€πŸ™ ()
    ≀ω 𝟘  πŸ™  πŸ™  ≀ω ()
    ≀ω 𝟘  πŸ™  β‰€πŸ™ 𝟘  ()
    ≀ω 𝟘  πŸ™  β‰€πŸ™ πŸ™  ()
    ≀ω 𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ ()
    ≀ω 𝟘  πŸ™  β‰€πŸ™ ≀ω ()
    ≀ω 𝟘  πŸ™  ≀ω 𝟘  ()
    ≀ω 𝟘  πŸ™  ≀ω πŸ™  ()
    ≀ω 𝟘  πŸ™  ≀ω β‰€πŸ™ ()
    ≀ω 𝟘  πŸ™  ≀ω ≀ω ()
    ≀ω 𝟘  β‰€πŸ™ 𝟘  𝟘  ()
    ≀ω 𝟘  β‰€πŸ™ 𝟘  πŸ™  ()
    ≀ω 𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ ()
    ≀ω 𝟘  β‰€πŸ™ 𝟘  ≀ω ()
    ≀ω 𝟘  β‰€πŸ™ πŸ™  𝟘  ()
    ≀ω 𝟘  β‰€πŸ™ πŸ™  πŸ™  ()
    ≀ω 𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ ()
    ≀ω 𝟘  β‰€πŸ™ πŸ™  ≀ω ()
    ≀ω 𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  ()
    ≀ω 𝟘  β‰€πŸ™ β‰€πŸ™ πŸ™  ()
    ≀ω 𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ()
    ≀ω 𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω ()
    ≀ω 𝟘  β‰€πŸ™ ≀ω 𝟘  ()
    ≀ω 𝟘  β‰€πŸ™ ≀ω πŸ™  ()
    ≀ω 𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ ()
    ≀ω 𝟘  β‰€πŸ™ ≀ω ≀ω ()
    ≀ω 𝟘  ≀ω 𝟘  𝟘  ()
    ≀ω 𝟘  ≀ω 𝟘  πŸ™  ()
    ≀ω 𝟘  ≀ω 𝟘  β‰€πŸ™ ()
    ≀ω 𝟘  ≀ω 𝟘  ≀ω ()
    ≀ω 𝟘  ≀ω πŸ™  𝟘  ()
    ≀ω 𝟘  ≀ω πŸ™  πŸ™  ()
    ≀ω 𝟘  ≀ω πŸ™  β‰€πŸ™ ()
    ≀ω 𝟘  ≀ω πŸ™  ≀ω ()
    ≀ω 𝟘  ≀ω β‰€πŸ™ 𝟘  ()
    ≀ω 𝟘  ≀ω β‰€πŸ™ πŸ™  ()
    ≀ω 𝟘  ≀ω β‰€πŸ™ β‰€πŸ™ ()
    ≀ω 𝟘  ≀ω β‰€πŸ™ ≀ω ()
    ≀ω 𝟘  ≀ω ≀ω 𝟘  ()
    ≀ω 𝟘  ≀ω ≀ω πŸ™  ()
    ≀ω 𝟘  ≀ω ≀ω β‰€πŸ™ ()
    ≀ω 𝟘  ≀ω ≀ω ≀ω ()
    𝟘  πŸ™  𝟘  𝟘  πŸ™  ()
    𝟘  πŸ™  𝟘  𝟘  β‰€πŸ™ ()
    𝟘  πŸ™  𝟘  𝟘  ≀ω ()
    𝟘  πŸ™  𝟘  πŸ™  𝟘  ()
    𝟘  πŸ™  𝟘  πŸ™  πŸ™  ()
    𝟘  πŸ™  𝟘  πŸ™  β‰€πŸ™ ()
    𝟘  πŸ™  𝟘  πŸ™  ≀ω ()
    𝟘  πŸ™  𝟘  β‰€πŸ™ 𝟘  ()
    𝟘  πŸ™  𝟘  β‰€πŸ™ πŸ™  ()
    𝟘  πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ ()
    𝟘  πŸ™  𝟘  β‰€πŸ™ ≀ω ()
    𝟘  πŸ™  𝟘  ≀ω 𝟘  ()
    𝟘  πŸ™  𝟘  ≀ω πŸ™  ()
    𝟘  πŸ™  𝟘  ≀ω β‰€πŸ™ ()
    𝟘  πŸ™  𝟘  ≀ω ≀ω ()
    𝟘  πŸ™  πŸ™  𝟘  𝟘  ()
    𝟘  πŸ™  πŸ™  𝟘  πŸ™  ()
    𝟘  πŸ™  πŸ™  𝟘  β‰€πŸ™ ()
    𝟘  πŸ™  πŸ™  𝟘  ≀ω ()
    𝟘  πŸ™  πŸ™  πŸ™  𝟘  ()
    𝟘  πŸ™  πŸ™  πŸ™  πŸ™  ()
    𝟘  πŸ™  πŸ™  πŸ™  β‰€πŸ™ ()
    𝟘  πŸ™  πŸ™  πŸ™  ≀ω ()
    𝟘  πŸ™  πŸ™  β‰€πŸ™ 𝟘  ()
    𝟘  πŸ™  πŸ™  β‰€πŸ™ πŸ™  ()
    𝟘  πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ ()
    𝟘  πŸ™  πŸ™  β‰€πŸ™ ≀ω ()
    𝟘  πŸ™  πŸ™  ≀ω 𝟘  ()
    𝟘  πŸ™  πŸ™  ≀ω πŸ™  ()
    𝟘  πŸ™  πŸ™  ≀ω β‰€πŸ™ ()
    𝟘  πŸ™  πŸ™  ≀ω ≀ω ()
    𝟘  πŸ™  β‰€πŸ™ 𝟘  𝟘  ()
    𝟘  πŸ™  β‰€πŸ™ 𝟘  πŸ™  ()
    𝟘  πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ ()
    𝟘  πŸ™  β‰€πŸ™ 𝟘  ≀ω ()
    𝟘  πŸ™  β‰€πŸ™ πŸ™  𝟘  ()
    𝟘  πŸ™  β‰€πŸ™ πŸ™  πŸ™  ()
    𝟘  πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ ()
    𝟘  πŸ™  β‰€πŸ™ πŸ™  ≀ω ()
    𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  ()
    𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ πŸ™  ()
    𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ()
    𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω ()
    𝟘  πŸ™  β‰€πŸ™ ≀ω 𝟘  ()
    𝟘  πŸ™  β‰€πŸ™ ≀ω πŸ™  ()
    𝟘  πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ ()
    𝟘  πŸ™  β‰€πŸ™ ≀ω ≀ω ()
    𝟘  πŸ™  ≀ω 𝟘  𝟘  ()
    𝟘  πŸ™  ≀ω 𝟘  πŸ™  ()
    𝟘  πŸ™  ≀ω 𝟘  β‰€πŸ™ ()
    𝟘  πŸ™  ≀ω 𝟘  ≀ω ()
    𝟘  πŸ™  ≀ω πŸ™  𝟘  ()
    𝟘  πŸ™  ≀ω πŸ™  πŸ™  ()
    𝟘  πŸ™  ≀ω πŸ™  β‰€πŸ™ ()
    𝟘  πŸ™  ≀ω πŸ™  ≀ω ()
    𝟘  πŸ™  ≀ω β‰€πŸ™ 𝟘  ()
    𝟘  πŸ™  ≀ω β‰€πŸ™ πŸ™  ()
    𝟘  πŸ™  ≀ω β‰€πŸ™ β‰€πŸ™ ()
    𝟘  πŸ™  ≀ω β‰€πŸ™ ≀ω ()
    𝟘  πŸ™  ≀ω ≀ω 𝟘  ()
    𝟘  πŸ™  ≀ω ≀ω πŸ™  ()
    𝟘  πŸ™  ≀ω ≀ω β‰€πŸ™ ()
    𝟘  πŸ™  ≀ω ≀ω ≀ω ()
    πŸ™  πŸ™  𝟘  𝟘  πŸ™  ()
    πŸ™  πŸ™  𝟘  𝟘  β‰€πŸ™ ()
    πŸ™  πŸ™  𝟘  𝟘  ≀ω ()
    πŸ™  πŸ™  𝟘  πŸ™  𝟘  ()
    πŸ™  πŸ™  𝟘  πŸ™  πŸ™  ()
    πŸ™  πŸ™  𝟘  πŸ™  β‰€πŸ™ ()
    πŸ™  πŸ™  𝟘  πŸ™  ≀ω ()
    πŸ™  πŸ™  𝟘  β‰€πŸ™ 𝟘  ()
    πŸ™  πŸ™  𝟘  β‰€πŸ™ πŸ™  ()
    πŸ™  πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ ()
    πŸ™  πŸ™  𝟘  β‰€πŸ™ ≀ω ()
    πŸ™  πŸ™  𝟘  ≀ω 𝟘  ()
    πŸ™  πŸ™  𝟘  ≀ω πŸ™  ()
    πŸ™  πŸ™  𝟘  ≀ω β‰€πŸ™ ()
    πŸ™  πŸ™  𝟘  ≀ω ≀ω ()
    πŸ™  πŸ™  πŸ™  𝟘  𝟘  ()
    πŸ™  πŸ™  πŸ™  𝟘  πŸ™  ()
    πŸ™  πŸ™  πŸ™  𝟘  β‰€πŸ™ ()
    πŸ™  πŸ™  πŸ™  𝟘  ≀ω ()
    πŸ™  πŸ™  πŸ™  πŸ™  𝟘  ()
    πŸ™  πŸ™  πŸ™  πŸ™  πŸ™  ()
    πŸ™  πŸ™  πŸ™  πŸ™  β‰€πŸ™ ()
    πŸ™  πŸ™  πŸ™  πŸ™  ≀ω ()
    πŸ™  πŸ™  πŸ™  β‰€πŸ™ 𝟘  ()
    πŸ™  πŸ™  πŸ™  β‰€πŸ™ πŸ™  ()
    πŸ™  πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ ()
    πŸ™  πŸ™  πŸ™  β‰€πŸ™ ≀ω ()
    πŸ™  πŸ™  πŸ™  ≀ω 𝟘  ()
    πŸ™  πŸ™  πŸ™  ≀ω πŸ™  ()
    πŸ™  πŸ™  πŸ™  ≀ω β‰€πŸ™ ()
    πŸ™  πŸ™  πŸ™  ≀ω ≀ω ()
    πŸ™  πŸ™  β‰€πŸ™ 𝟘  𝟘  ()
    πŸ™  πŸ™  β‰€πŸ™ 𝟘  πŸ™  ()
    πŸ™  πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ ()
    πŸ™  πŸ™  β‰€πŸ™ 𝟘  ≀ω ()
    πŸ™  πŸ™  β‰€πŸ™ πŸ™  𝟘  ()
    πŸ™  πŸ™  β‰€πŸ™ πŸ™  πŸ™  ()
    πŸ™  πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ ()
    πŸ™  πŸ™  β‰€πŸ™ πŸ™  ≀ω ()
    πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  ()
    πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ πŸ™  ()
    πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ()
    πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω ()
    πŸ™  πŸ™  β‰€πŸ™ ≀ω 𝟘  ()
    πŸ™  πŸ™  β‰€πŸ™ ≀ω πŸ™  ()
    πŸ™  πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ ()
    πŸ™  πŸ™  β‰€πŸ™ ≀ω ≀ω ()
    πŸ™  πŸ™  ≀ω 𝟘  𝟘  ()
    πŸ™  πŸ™  ≀ω 𝟘  πŸ™  ()
    πŸ™  πŸ™  ≀ω 𝟘  β‰€πŸ™ ()
    πŸ™  πŸ™  ≀ω 𝟘  ≀ω ()
    πŸ™  πŸ™  ≀ω πŸ™  𝟘  ()
    πŸ™  πŸ™  ≀ω πŸ™  πŸ™  ()
    πŸ™  πŸ™  ≀ω πŸ™  β‰€πŸ™ ()
    πŸ™  πŸ™  ≀ω πŸ™  ≀ω ()
    πŸ™  πŸ™  ≀ω β‰€πŸ™ 𝟘  ()
    πŸ™  πŸ™  ≀ω β‰€πŸ™ πŸ™  ()
    πŸ™  πŸ™  ≀ω β‰€πŸ™ β‰€πŸ™ ()
    πŸ™  πŸ™  ≀ω β‰€πŸ™ ≀ω ()
    πŸ™  πŸ™  ≀ω ≀ω 𝟘  ()
    πŸ™  πŸ™  ≀ω ≀ω πŸ™  ()
    πŸ™  πŸ™  ≀ω ≀ω β‰€πŸ™ ()
    πŸ™  πŸ™  ≀ω ≀ω ≀ω ()
    β‰€πŸ™ πŸ™  𝟘  𝟘  πŸ™  ()
    β‰€πŸ™ πŸ™  𝟘  𝟘  β‰€πŸ™ ()
    β‰€πŸ™ πŸ™  𝟘  𝟘  ≀ω ()
    β‰€πŸ™ πŸ™  𝟘  πŸ™  𝟘  ()
    β‰€πŸ™ πŸ™  𝟘  πŸ™  πŸ™  ()
    β‰€πŸ™ πŸ™  𝟘  πŸ™  β‰€πŸ™ ()
    β‰€πŸ™ πŸ™  𝟘  πŸ™  ≀ω ()
    β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ 𝟘  ()
    β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ πŸ™  ()
    β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ ()
    β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ ≀ω ()
    β‰€πŸ™ πŸ™  𝟘  ≀ω 𝟘  ()
    β‰€πŸ™ πŸ™  𝟘  ≀ω πŸ™  ()
    β‰€πŸ™ πŸ™  𝟘  ≀ω β‰€πŸ™ ()
    β‰€πŸ™ πŸ™  𝟘  ≀ω ≀ω ()
    β‰€πŸ™ πŸ™  πŸ™  𝟘  𝟘  ()
    β‰€πŸ™ πŸ™  πŸ™  𝟘  πŸ™  ()
    β‰€πŸ™ πŸ™  πŸ™  𝟘  β‰€πŸ™ ()
    β‰€πŸ™ πŸ™  πŸ™  𝟘  ≀ω ()
    β‰€πŸ™ πŸ™  πŸ™  πŸ™  𝟘  ()
    β‰€πŸ™ πŸ™  πŸ™  πŸ™  πŸ™  ()
    β‰€πŸ™ πŸ™  πŸ™  πŸ™  β‰€πŸ™ ()
    β‰€πŸ™ πŸ™  πŸ™  πŸ™  ≀ω ()
    β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ 𝟘  ()
    β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ πŸ™  ()
    β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ ()
    β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ ≀ω ()
    β‰€πŸ™ πŸ™  πŸ™  ≀ω 𝟘  ()
    β‰€πŸ™ πŸ™  πŸ™  ≀ω πŸ™  ()
    β‰€πŸ™ πŸ™  πŸ™  ≀ω β‰€πŸ™ ()
    β‰€πŸ™ πŸ™  πŸ™  ≀ω ≀ω ()
    β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  𝟘  ()
    β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  πŸ™  ()
    β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ ()
    β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  ≀ω ()
    β‰€πŸ™ πŸ™  β‰€πŸ™ πŸ™  𝟘  ()
    β‰€πŸ™ πŸ™  β‰€πŸ™ πŸ™  πŸ™  ()
    β‰€πŸ™ πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ ()
    β‰€πŸ™ πŸ™  β‰€πŸ™ πŸ™  ≀ω ()
    β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  ()
    β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ πŸ™  ()
    β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ()
    β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω ()
    β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω 𝟘  ()
    β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω πŸ™  ()
    β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ ()
    β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω ≀ω ()
    β‰€πŸ™ πŸ™  ≀ω 𝟘  𝟘  ()
    β‰€πŸ™ πŸ™  ≀ω 𝟘  πŸ™  ()
    β‰€πŸ™ πŸ™  ≀ω 𝟘  β‰€πŸ™ ()
    β‰€πŸ™ πŸ™  ≀ω 𝟘  ≀ω ()
    β‰€πŸ™ πŸ™  ≀ω πŸ™  𝟘  ()
    β‰€πŸ™ πŸ™  ≀ω πŸ™  πŸ™  ()
    β‰€πŸ™ πŸ™  ≀ω πŸ™  β‰€πŸ™ ()
    β‰€πŸ™ πŸ™  ≀ω πŸ™  ≀ω ()
    β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ 𝟘  ()
    β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ πŸ™  ()
    β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ β‰€πŸ™ ()
    β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ ≀ω ()
    β‰€πŸ™ πŸ™  ≀ω ≀ω 𝟘  ()
    β‰€πŸ™ πŸ™  ≀ω ≀ω πŸ™  ()
    β‰€πŸ™ πŸ™  ≀ω ≀ω β‰€πŸ™ ()
    β‰€πŸ™ πŸ™  ≀ω ≀ω ≀ω ()
    ≀ω πŸ™  𝟘  𝟘  πŸ™  ()
    ≀ω πŸ™  𝟘  𝟘  β‰€πŸ™ ()
    ≀ω πŸ™  𝟘  𝟘  ≀ω ()
    ≀ω πŸ™  𝟘  πŸ™  𝟘  ()
    ≀ω πŸ™  𝟘  πŸ™  πŸ™  ()
    ≀ω πŸ™  𝟘  πŸ™  β‰€πŸ™ ()
    ≀ω πŸ™  𝟘  πŸ™  ≀ω ()
    ≀ω πŸ™  𝟘  β‰€πŸ™ 𝟘  ()
    ≀ω πŸ™  𝟘  β‰€πŸ™ πŸ™  ()
    ≀ω πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ ()
    ≀ω πŸ™  𝟘  β‰€πŸ™ ≀ω ()
    ≀ω πŸ™  𝟘  ≀ω 𝟘  ()
    ≀ω πŸ™  𝟘  ≀ω πŸ™  ()
    ≀ω πŸ™  𝟘  ≀ω β‰€πŸ™ ()
    ≀ω πŸ™  𝟘  ≀ω ≀ω ()
    ≀ω πŸ™  πŸ™  𝟘  𝟘  ()
    ≀ω πŸ™  πŸ™  𝟘  πŸ™  ()
    ≀ω πŸ™  πŸ™  𝟘  β‰€πŸ™ ()
    ≀ω πŸ™  πŸ™  𝟘  ≀ω ()
    ≀ω πŸ™  πŸ™  πŸ™  𝟘  ()
    ≀ω πŸ™  πŸ™  πŸ™  πŸ™  ()
    ≀ω πŸ™  πŸ™  πŸ™  β‰€πŸ™ ()
    ≀ω πŸ™  πŸ™  πŸ™  ≀ω ()
    ≀ω πŸ™  πŸ™  β‰€πŸ™ 𝟘  ()
    ≀ω πŸ™  πŸ™  β‰€πŸ™ πŸ™  ()
    ≀ω πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ ()
    ≀ω πŸ™  πŸ™  β‰€πŸ™ ≀ω ()
    ≀ω πŸ™  πŸ™  ≀ω 𝟘  ()
    ≀ω πŸ™  πŸ™  ≀ω πŸ™  ()
    ≀ω πŸ™  πŸ™  ≀ω β‰€πŸ™ ()
    ≀ω πŸ™  πŸ™  ≀ω ≀ω ()
    ≀ω πŸ™  β‰€πŸ™ 𝟘  𝟘  ()
    ≀ω πŸ™  β‰€πŸ™ 𝟘  πŸ™  ()
    ≀ω πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ ()
    ≀ω πŸ™  β‰€πŸ™ 𝟘  ≀ω ()
    ≀ω πŸ™  β‰€πŸ™ πŸ™  𝟘  ()
    ≀ω πŸ™  β‰€πŸ™ πŸ™  πŸ™  ()
    ≀ω πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ ()
    ≀ω πŸ™  β‰€πŸ™ πŸ™  ≀ω ()
    ≀ω πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  ()
    ≀ω πŸ™  β‰€πŸ™ β‰€πŸ™ πŸ™  ()
    ≀ω πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ()
    ≀ω πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω ()
    ≀ω πŸ™  β‰€πŸ™ ≀ω 𝟘  ()
    ≀ω πŸ™  β‰€πŸ™ ≀ω πŸ™  ()
    ≀ω πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ ()
    ≀ω πŸ™  β‰€πŸ™ ≀ω ≀ω ()
    ≀ω πŸ™  ≀ω 𝟘  𝟘  ()
    ≀ω πŸ™  ≀ω 𝟘  πŸ™  ()
    ≀ω πŸ™  ≀ω 𝟘  β‰€πŸ™ ()
    ≀ω πŸ™  ≀ω 𝟘  ≀ω ()
    ≀ω πŸ™  ≀ω πŸ™  𝟘  ()
    ≀ω πŸ™  ≀ω πŸ™  πŸ™  ()
    ≀ω πŸ™  ≀ω πŸ™  β‰€πŸ™ ()
    ≀ω πŸ™  ≀ω πŸ™  ≀ω ()
    ≀ω πŸ™  ≀ω β‰€πŸ™ 𝟘  ()
    ≀ω πŸ™  ≀ω β‰€πŸ™ πŸ™  ()
    ≀ω πŸ™  ≀ω β‰€πŸ™ β‰€πŸ™ ()
    ≀ω πŸ™  ≀ω β‰€πŸ™ ≀ω ()
    ≀ω πŸ™  ≀ω ≀ω 𝟘  ()
    ≀ω πŸ™  ≀ω ≀ω πŸ™  ()
    ≀ω πŸ™  ≀ω ≀ω β‰€πŸ™ ()
    ≀ω πŸ™  ≀ω ≀ω ≀ω ()
    𝟘  β‰€πŸ™ 𝟘  𝟘  πŸ™  ()
    𝟘  β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ ()
    𝟘  β‰€πŸ™ 𝟘  𝟘  ≀ω ()
    𝟘  β‰€πŸ™ 𝟘  πŸ™  𝟘  ()
    𝟘  β‰€πŸ™ 𝟘  πŸ™  πŸ™  ()
    𝟘  β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ ()
    𝟘  β‰€πŸ™ 𝟘  πŸ™  ≀ω ()
    𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  ()
    𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ πŸ™  ()
    𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ ()
    𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω ()
    𝟘  β‰€πŸ™ 𝟘  ≀ω 𝟘  ()
    𝟘  β‰€πŸ™ 𝟘  ≀ω πŸ™  ()
    𝟘  β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ ()
    𝟘  β‰€πŸ™ 𝟘  ≀ω ≀ω ()
    𝟘  β‰€πŸ™ πŸ™  𝟘  𝟘  ()
    𝟘  β‰€πŸ™ πŸ™  𝟘  πŸ™  ()
    𝟘  β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ ()
    𝟘  β‰€πŸ™ πŸ™  𝟘  ≀ω ()
    𝟘  β‰€πŸ™ πŸ™  πŸ™  𝟘  ()
    𝟘  β‰€πŸ™ πŸ™  πŸ™  πŸ™  ()
    𝟘  β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ ()
    𝟘  β‰€πŸ™ πŸ™  πŸ™  ≀ω ()
    𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  ()
    𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ πŸ™  ()
    𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ ()
    𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω ()
    𝟘  β‰€πŸ™ πŸ™  ≀ω 𝟘  ()
    𝟘  β‰€πŸ™ πŸ™  ≀ω πŸ™  ()
    𝟘  β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ ()
    𝟘  β‰€πŸ™ πŸ™  ≀ω ≀ω ()
    𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  ()
    𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  πŸ™  ()
    𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ ()
    𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω ()
    𝟘  β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  ()
    𝟘  β‰€πŸ™ β‰€πŸ™ πŸ™  πŸ™  ()
    𝟘  β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ ()
    𝟘  β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω ()
    𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  ()
    𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ πŸ™  ()
    𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ()
    𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω ()
    𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  ()
    𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω πŸ™  ()
    𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ ()
    𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω ()
    𝟘  β‰€πŸ™ ≀ω 𝟘  𝟘  ()
    𝟘  β‰€πŸ™ ≀ω 𝟘  πŸ™  ()
    𝟘  β‰€πŸ™ ≀ω 𝟘  β‰€πŸ™ ()
    𝟘  β‰€πŸ™ ≀ω 𝟘  ≀ω ()
    𝟘  β‰€πŸ™ ≀ω πŸ™  𝟘  ()
    𝟘  β‰€πŸ™ ≀ω πŸ™  πŸ™  ()
    𝟘  β‰€πŸ™ ≀ω πŸ™  β‰€πŸ™ ()
    𝟘  β‰€πŸ™ ≀ω πŸ™  ≀ω ()
    𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ 𝟘  ()
    𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ πŸ™  ()
    𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ β‰€πŸ™ ()
    𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ ≀ω ()
    𝟘  β‰€πŸ™ ≀ω ≀ω 𝟘  ()
    𝟘  β‰€πŸ™ ≀ω ≀ω πŸ™  ()
    𝟘  β‰€πŸ™ ≀ω ≀ω β‰€πŸ™ ()
    𝟘  β‰€πŸ™ ≀ω ≀ω ≀ω ()
    πŸ™  β‰€πŸ™ 𝟘  𝟘  πŸ™  ()
    πŸ™  β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ ()
    πŸ™  β‰€πŸ™ 𝟘  𝟘  ≀ω ()
    πŸ™  β‰€πŸ™ 𝟘  πŸ™  𝟘  ()
    πŸ™  β‰€πŸ™ 𝟘  πŸ™  πŸ™  ()
    πŸ™  β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ ()
    πŸ™  β‰€πŸ™ 𝟘  πŸ™  ≀ω ()
    πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  ()
    πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ πŸ™  ()
    πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ ()
    πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω ()
    πŸ™  β‰€πŸ™ 𝟘  ≀ω 𝟘  ()
    πŸ™  β‰€πŸ™ 𝟘  ≀ω πŸ™  ()
    πŸ™  β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ ()
    πŸ™  β‰€πŸ™ 𝟘  ≀ω ≀ω ()
    πŸ™  β‰€πŸ™ πŸ™  𝟘  𝟘  ()
    πŸ™  β‰€πŸ™ πŸ™  𝟘  πŸ™  ()
    πŸ™  β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ ()
    πŸ™  β‰€πŸ™ πŸ™  𝟘  ≀ω ()
    πŸ™  β‰€πŸ™ πŸ™  πŸ™  𝟘  ()
    πŸ™  β‰€πŸ™ πŸ™  πŸ™  πŸ™  ()
    πŸ™  β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ ()
    πŸ™  β‰€πŸ™ πŸ™  πŸ™  ≀ω ()
    πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  ()
    πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ πŸ™  ()
    πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ ()
    πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω ()
    πŸ™  β‰€πŸ™ πŸ™  ≀ω 𝟘  ()
    πŸ™  β‰€πŸ™ πŸ™  ≀ω πŸ™  ()
    πŸ™  β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ ()
    πŸ™  β‰€πŸ™ πŸ™  ≀ω ≀ω ()
    πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  ()
    πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  πŸ™  ()
    πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ ()
    πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω ()
    πŸ™  β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  ()
    πŸ™  β‰€πŸ™ β‰€πŸ™ πŸ™  πŸ™  ()
    πŸ™  β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ ()
    πŸ™  β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω ()
    πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  ()
    πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ πŸ™  ()
    πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ()
    πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω ()
    πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  ()
    πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω πŸ™  ()
    πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ ()
    πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω ()
    πŸ™  β‰€πŸ™ ≀ω 𝟘  𝟘  ()
    πŸ™  β‰€πŸ™ ≀ω 𝟘  πŸ™  ()
    πŸ™  β‰€πŸ™ ≀ω 𝟘  β‰€πŸ™ ()
    πŸ™  β‰€πŸ™ ≀ω 𝟘  ≀ω ()
    πŸ™  β‰€πŸ™ ≀ω πŸ™  𝟘  ()
    πŸ™  β‰€πŸ™ ≀ω πŸ™  πŸ™  ()
    πŸ™  β‰€πŸ™ ≀ω πŸ™  β‰€πŸ™ ()
    πŸ™  β‰€πŸ™ ≀ω πŸ™  ≀ω ()
    πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ 𝟘  ()
    πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ πŸ™  ()
    πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ β‰€πŸ™ ()
    πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ ≀ω ()
    πŸ™  β‰€πŸ™ ≀ω ≀ω 𝟘  ()
    πŸ™  β‰€πŸ™ ≀ω ≀ω πŸ™  ()
    πŸ™  β‰€πŸ™ ≀ω ≀ω β‰€πŸ™ ()
    πŸ™  β‰€πŸ™ ≀ω ≀ω ≀ω ()
    β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  πŸ™  ()
    β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ ()
    β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  ≀ω ()
    β‰€πŸ™ β‰€πŸ™ 𝟘  πŸ™  𝟘  ()
    β‰€πŸ™ β‰€πŸ™ 𝟘  πŸ™  πŸ™  ()
    β‰€πŸ™ β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ ()
    β‰€πŸ™ β‰€πŸ™ 𝟘  πŸ™  ≀ω ()
    β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  ()
    β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ πŸ™  ()
    β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ ()
    β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω ()
    β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω 𝟘  ()
    β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω πŸ™  ()
    β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ ()
    β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω ≀ω ()
    β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  𝟘  ()
    β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  πŸ™  ()
    β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ ()
    β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  ≀ω ()
    β‰€πŸ™ β‰€πŸ™ πŸ™  πŸ™  𝟘  ()
    β‰€πŸ™ β‰€πŸ™ πŸ™  πŸ™  πŸ™  ()
    β‰€πŸ™ β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ ()
    β‰€πŸ™ β‰€πŸ™ πŸ™  πŸ™  ≀ω ()
    β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  ()
    β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ πŸ™  ()
    β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ ()
    β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω ()
    β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω 𝟘  ()
    β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω πŸ™  ()
    β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ ()
    β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω ≀ω ()
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  ()
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  πŸ™  ()
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ ()
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω ()
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  ()
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ πŸ™  πŸ™  ()
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ ()
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω ()
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  ()
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ πŸ™  ()
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ()
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω ()
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  ()
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω πŸ™  ()
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ ()
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω ()
    β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  𝟘  ()
    β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  πŸ™  ()
    β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  β‰€πŸ™ ()
    β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  ≀ω ()
    β‰€πŸ™ β‰€πŸ™ ≀ω πŸ™  𝟘  ()
    β‰€πŸ™ β‰€πŸ™ ≀ω πŸ™  πŸ™  ()
    β‰€πŸ™ β‰€πŸ™ ≀ω πŸ™  β‰€πŸ™ ()
    β‰€πŸ™ β‰€πŸ™ ≀ω πŸ™  ≀ω ()
    β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ 𝟘  ()
    β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ πŸ™  ()
    β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ β‰€πŸ™ ()
    β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ ≀ω ()
    β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω 𝟘  ()
    β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω πŸ™  ()
    β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω β‰€πŸ™ ()
    β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω ≀ω ()
    ≀ω β‰€πŸ™ 𝟘  𝟘  πŸ™  ()
    ≀ω β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ ()
    ≀ω β‰€πŸ™ 𝟘  𝟘  ≀ω ()
    ≀ω β‰€πŸ™ 𝟘  πŸ™  𝟘  ()
    ≀ω β‰€πŸ™ 𝟘  πŸ™  πŸ™  ()
    ≀ω β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ ()
    ≀ω β‰€πŸ™ 𝟘  πŸ™  ≀ω ()
    ≀ω β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  ()
    ≀ω β‰€πŸ™ 𝟘  β‰€πŸ™ πŸ™  ()
    ≀ω β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ ()
    ≀ω β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω ()
    ≀ω β‰€πŸ™ 𝟘  ≀ω 𝟘  ()
    ≀ω β‰€πŸ™ 𝟘  ≀ω πŸ™  ()
    ≀ω β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ ()
    ≀ω β‰€πŸ™ 𝟘  ≀ω ≀ω ()
    ≀ω β‰€πŸ™ πŸ™  𝟘  𝟘  ()
    ≀ω β‰€πŸ™ πŸ™  𝟘  πŸ™  ()
    ≀ω β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ ()
    ≀ω β‰€πŸ™ πŸ™  𝟘  ≀ω ()
    ≀ω β‰€πŸ™ πŸ™  πŸ™  𝟘  ()
    ≀ω β‰€πŸ™ πŸ™  πŸ™  πŸ™  ()
    ≀ω β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ ()
    ≀ω β‰€πŸ™ πŸ™  πŸ™  ≀ω ()
    ≀ω β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  ()
    ≀ω β‰€πŸ™ πŸ™  β‰€πŸ™ πŸ™  ()
    ≀ω β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ ()
    ≀ω β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω ()
    ≀ω β‰€πŸ™ πŸ™  ≀ω 𝟘  ()
    ≀ω β‰€πŸ™ πŸ™  ≀ω πŸ™  ()
    ≀ω β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ ()
    ≀ω β‰€πŸ™ πŸ™  ≀ω ≀ω ()
    ≀ω β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  ()
    ≀ω β‰€πŸ™ β‰€πŸ™ 𝟘  πŸ™  ()
    ≀ω β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ ()
    ≀ω β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω ()
    ≀ω β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  ()
    ≀ω β‰€πŸ™ β‰€πŸ™ πŸ™  πŸ™  ()
    ≀ω β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ ()
    ≀ω β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω ()
    ≀ω β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  ()
    ≀ω β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ πŸ™  ()
    ≀ω β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ()
    ≀ω β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω ()
    ≀ω β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  ()
    ≀ω β‰€πŸ™ β‰€πŸ™ ≀ω πŸ™  ()
    ≀ω β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ ()
    ≀ω β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω ()
    ≀ω β‰€πŸ™ ≀ω 𝟘  𝟘  ()
    ≀ω β‰€πŸ™ ≀ω 𝟘  πŸ™  ()
    ≀ω β‰€πŸ™ ≀ω 𝟘  β‰€πŸ™ ()
    ≀ω β‰€πŸ™ ≀ω 𝟘  ≀ω ()
    ≀ω β‰€πŸ™ ≀ω πŸ™  𝟘  ()
    ≀ω β‰€πŸ™ ≀ω πŸ™  πŸ™  ()
    ≀ω β‰€πŸ™ ≀ω πŸ™  β‰€πŸ™ ()
    ≀ω β‰€πŸ™ ≀ω πŸ™  ≀ω ()
    ≀ω β‰€πŸ™ ≀ω β‰€πŸ™ 𝟘  ()
    ≀ω β‰€πŸ™ ≀ω β‰€πŸ™ πŸ™  ()
    ≀ω β‰€πŸ™ ≀ω β‰€πŸ™ β‰€πŸ™ ()
    ≀ω β‰€πŸ™ ≀ω β‰€πŸ™ ≀ω ()
    ≀ω β‰€πŸ™ ≀ω ≀ω 𝟘  ()
    ≀ω β‰€πŸ™ ≀ω ≀ω πŸ™  ()
    ≀ω β‰€πŸ™ ≀ω ≀ω β‰€πŸ™ ()
    ≀ω β‰€πŸ™ ≀ω ≀ω ≀ω ()
    _  ≀ω 𝟘  𝟘  πŸ™  ()
    _  ≀ω 𝟘  𝟘  β‰€πŸ™ ()
    _  ≀ω 𝟘  𝟘  ≀ω ()
    _  ≀ω 𝟘  πŸ™  𝟘  ()
    _  ≀ω 𝟘  πŸ™  πŸ™  ()
    _  ≀ω 𝟘  πŸ™  β‰€πŸ™ ()
    _  ≀ω 𝟘  πŸ™  ≀ω ()
    _  ≀ω 𝟘  β‰€πŸ™ 𝟘  ()
    _  ≀ω 𝟘  β‰€πŸ™ πŸ™  ()
    _  ≀ω 𝟘  β‰€πŸ™ β‰€πŸ™ ()
    _  ≀ω 𝟘  β‰€πŸ™ ≀ω ()
    _  ≀ω 𝟘  ≀ω 𝟘  ()
    _  ≀ω 𝟘  ≀ω πŸ™  ()
    _  ≀ω 𝟘  ≀ω β‰€πŸ™ ()
    _  ≀ω 𝟘  ≀ω ≀ω ()
    _  ≀ω πŸ™  𝟘  𝟘  ()
    _  ≀ω πŸ™  𝟘  πŸ™  ()
    _  ≀ω πŸ™  𝟘  β‰€πŸ™ ()
    _  ≀ω πŸ™  𝟘  ≀ω ()
    _  ≀ω πŸ™  πŸ™  𝟘  ()
    _  ≀ω πŸ™  πŸ™  πŸ™  ()
    _  ≀ω πŸ™  πŸ™  β‰€πŸ™ ()
    _  ≀ω πŸ™  πŸ™  ≀ω ()
    _  ≀ω πŸ™  β‰€πŸ™ 𝟘  ()
    _  ≀ω πŸ™  β‰€πŸ™ πŸ™  ()
    _  ≀ω πŸ™  β‰€πŸ™ β‰€πŸ™ ()
    _  ≀ω πŸ™  β‰€πŸ™ ≀ω ()
    _  ≀ω πŸ™  ≀ω 𝟘  ()
    _  ≀ω πŸ™  ≀ω πŸ™  ()
    _  ≀ω πŸ™  ≀ω β‰€πŸ™ ()
    _  ≀ω πŸ™  ≀ω ≀ω ()
    _  ≀ω β‰€πŸ™ 𝟘  𝟘  ()
    _  ≀ω β‰€πŸ™ 𝟘  πŸ™  ()
    _  ≀ω β‰€πŸ™ 𝟘  β‰€πŸ™ ()
    _  ≀ω β‰€πŸ™ 𝟘  ≀ω ()
    _  ≀ω β‰€πŸ™ πŸ™  𝟘  ()
    _  ≀ω β‰€πŸ™ πŸ™  πŸ™  ()
    _  ≀ω β‰€πŸ™ πŸ™  β‰€πŸ™ ()
    _  ≀ω β‰€πŸ™ πŸ™  ≀ω ()
    _  ≀ω β‰€πŸ™ β‰€πŸ™ 𝟘  ()
    _  ≀ω β‰€πŸ™ β‰€πŸ™ πŸ™  ()
    _  ≀ω β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ()
    _  ≀ω β‰€πŸ™ β‰€πŸ™ ≀ω ()
    _  ≀ω β‰€πŸ™ ≀ω 𝟘  ()
    _  ≀ω β‰€πŸ™ ≀ω πŸ™  ()
    _  ≀ω β‰€πŸ™ ≀ω β‰€πŸ™ ()
    _  ≀ω β‰€πŸ™ ≀ω ≀ω ()
    _  ≀ω ≀ω 𝟘  𝟘  ()
    _  ≀ω ≀ω 𝟘  πŸ™  ()
    _  ≀ω ≀ω 𝟘  β‰€πŸ™ ()
    _  ≀ω ≀ω 𝟘  ≀ω ()
    _  ≀ω ≀ω πŸ™  𝟘  ()
    _  ≀ω ≀ω πŸ™  πŸ™  ()
    _  ≀ω ≀ω πŸ™  β‰€πŸ™ ()
    _  ≀ω ≀ω πŸ™  ≀ω ()
    _  ≀ω ≀ω β‰€πŸ™ 𝟘  ()
    _  ≀ω ≀ω β‰€πŸ™ πŸ™  ()
    _  ≀ω ≀ω β‰€πŸ™ β‰€πŸ™ ()
    _  ≀ω ≀ω β‰€πŸ™ ≀ω ()
    _  ≀ω ≀ω ≀ω 𝟘  ()
    _  ≀ω ≀ω ≀ω πŸ™  ()
    _  ≀ω ≀ω ≀ω β‰€πŸ™ ()
    _  ≀ω ≀ω ≀ω ≀ω ()

  lemmaβ‚‚ : βˆ€ p r β†’ nr p r 𝟘 𝟘 𝟘 ≑ 𝟘
  lemmaβ‚‚ = Ξ» where
    𝟘  𝟘  β†’ refl
    𝟘  πŸ™  β†’ refl
    𝟘  β‰€πŸ™ β†’ refl
    𝟘  ≀ω β†’ refl
    πŸ™  𝟘  β†’ refl
    πŸ™  πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  ≀ω β†’ refl
    β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω β†’ refl
    ≀ω 𝟘  β†’ refl
    ≀ω πŸ™  β†’ refl
    ≀ω β‰€πŸ™ β†’ refl
    ≀ω ≀ω β†’ refl

-- An nr function can be defined for
-- linear-or-affine-semiring-with-meet.

linear-or-affine-has-nr : Has-nr linear-or-affine-semiring-with-meet
linear-or-affine-has-nr = record
  { nr          = nr
  ; nr-monotone = Ξ» {p = p} {r = r} β†’ nr-monotone p r
  ; nr-Β·        = Ξ» {p = _} {r = r} β†’ nr-Β· r
  ; nr-+        = Ξ» {p = _} {r = r} β†’ nr-+ r
  ; nr-𝟘        = Ξ» {p = _} {r = r} β†’ nr-𝟘 r .projβ‚‚ (refl , refl , refl)
  ; nr-positive = Ξ» {p = _} {r = r} β†’ nr-𝟘 r .proj₁
  ; nr-zero     = Ξ» {n = _} {p = _} {r = r} β†’ nr-zero r _ _ _ _
  ; nr-suc      = Ξ» {p = _} {r = r} β†’ nr-suc r _ _ _ _
  }
  where
  open Semiring-with-meet linear-or-affine-semiring-with-meet
    hiding (𝟘; πŸ™; _+_; _Β·_; _∧_; _≀_)
  open Addition linear-or-affine-semiring-with-meet
  open Meet linear-or-affine-semiring-with-meet
  open Multiplication linear-or-affine-semiring-with-meet
  open PartialOrder linear-or-affine-semiring-with-meet

  nr-monotone :
    βˆ€ p r β†’
    z₁ ≀ zβ‚‚ β†’ s₁ ≀ sβ‚‚ β†’ n₁ ≀ nβ‚‚ β†’
    nr p r z₁ s₁ n₁ ≀ nr p r zβ‚‚ sβ‚‚ nβ‚‚
  nr-monotone = Ξ» where
    p 𝟘 z₁≀zβ‚‚ s₁≀sβ‚‚ n₁≀nβ‚‚ β†’
      ∧-monotone (+-monotone (Β·-monotoneΚ³ {r = πŸ™ ∧ p} n₁≀nβ‚‚) s₁≀sβ‚‚)
        (+-monotone n₁≀nβ‚‚ z₁≀zβ‚‚)
    p πŸ™ z₁≀zβ‚‚ s₁≀sβ‚‚ n₁≀nβ‚‚ β†’
      +-monotone (Β·-monotoneΚ³ {r = πŸ™ + p} n₁≀nβ‚‚)
        (+-monotone (Β·-monotoneΚ³ {r = ≀ω} s₁≀sβ‚‚) z₁≀zβ‚‚)
    p β‰€πŸ™ z₁≀zβ‚‚ s₁≀sβ‚‚ n₁≀nβ‚‚ β†’
      +-monotone (Β·-monotoneΚ³ {r = β‰€πŸ™ + p} n₁≀nβ‚‚)
        (+-monotone (Β·-monotoneΚ³ {r = ≀ω} s₁≀sβ‚‚)
           (Β·-monotoneΚ³ {r = β‰€πŸ™} z₁≀zβ‚‚))
    _ ≀ω z₁≀zβ‚‚ s₁≀sβ‚‚ n₁≀nβ‚‚ β†’
      Β·-monotoneΚ³ {r = ≀ω} (+-monotone n₁≀nβ‚‚ (+-monotone s₁≀sβ‚‚ z₁≀zβ‚‚))

  nr-Β· : βˆ€ r β†’ nr p r z s n Β· q ≀ nr p r (z Β· q) (s Β· q) (n Β· q)
  nr-Β· {p = p} {z = z} {s = s} {n = n} {q = q} = Ξ» where
      𝟘 β†’ begin
        (((πŸ™ ∧ p) Β· n + s) ∧ (n + z)) Β· q              β‰‘βŸ¨ Β·-distribΚ³-∧ _ ((πŸ™ ∧ p) Β· _ + _) _ ⟩
        ((πŸ™ ∧ p) Β· n + s) Β· q ∧ (n + z) Β· q            β‰‘βŸ¨ ∧-cong (Β·-distribΚ³-+ _ ((πŸ™ ∧ p) Β· _) _)
                                                            (·-distribʳ-+ _ n _) ⟩
        (((πŸ™ ∧ p) Β· n) Β· q + s Β· q) ∧ (n Β· q + z Β· q)  β‰‘βŸ¨ ∧-congΚ³ (+-congΚ³ (Β·-assoc (πŸ™ ∧ p) _ _)) ⟩
        ((πŸ™ ∧ p) Β· (n Β· q) + s Β· q) ∧ (n Β· q + z Β· q)  ∎
      πŸ™ β†’ begin
        ((πŸ™ + p) Β· n + ≀ω Β· s + z) Β· q            β‰‘βŸ¨ Β·-distribΚ³-+ _ ((πŸ™ + p) Β· _) _ ⟩
        ((πŸ™ + p) Β· n) Β· q + (≀ω Β· s + z) Β· q      β‰‘βŸ¨ +-congΛ‘ {x = ((πŸ™ + p) Β· _) Β· _}
                                                       (Β·-distribΚ³-+ _ (≀ω Β· s) _) ⟩
        ((πŸ™ + p) Β· n) Β· q + (≀ω Β· s) Β· q + z Β· q  β‰‘βŸ¨ +-cong (Β·-assoc (πŸ™ + p) _ _)
                                                       (+-congΚ³ (Β·-assoc ≀ω s _)) ⟩
        (πŸ™ + p) Β· (n Β· q) + ≀ω Β· (s Β· q) + z Β· q  ∎
      β‰€πŸ™ β†’ begin
        ((β‰€πŸ™ + p) Β· n + ≀ω Β· s + β‰€πŸ™ Β· z) Β· q              β‰‘βŸ¨ Β·-distribΚ³-+ _ ((β‰€πŸ™ + p) Β· _) _ ⟩
        ((β‰€πŸ™ + p) Β· n) Β· q + (≀ω Β· s + β‰€πŸ™ Β· z) Β· q        β‰‘βŸ¨ +-congΛ‘ {x = ((β‰€πŸ™ + p) Β· _) Β· _}
                                                               (Β·-distribΚ³-+ _ (≀ω Β· s) _) ⟩
        ((β‰€πŸ™ + p) Β· n) Β· q + (≀ω Β· s) Β· q + (β‰€πŸ™ Β· z) Β· q  β‰‘βŸ¨ +-cong (Β·-assoc (β‰€πŸ™ + p) _ _)
                                                               (+-cong (Β·-assoc ≀ω s _) (Β·-assoc β‰€πŸ™ z _)) ⟩
        (β‰€πŸ™ + p) Β· (n Β· q) + ≀ω Β· (s Β· q) + β‰€πŸ™ Β· (z Β· q)  ∎
      ≀ω β†’ begin
        (≀ω Β· (n + s + z)) Β· q        β‰‘βŸ¨ Β·-assoc ≀ω (n + _) _ ⟩
        ≀ω Β· ((n + s + z) Β· q)        β‰‘βŸ¨ Β·-congΛ‘ {x = ≀ω} (Β·-distribΚ³-+ _ n _) ⟩
        ≀ω Β· (n Β· q + (s + z) Β· q)    β‰‘βŸ¨ Β·-congΛ‘ {x = ≀ω} (+-congΛ‘ {x = n Β· _} (Β·-distribΚ³-+ _ s _)) ⟩
        ≀ω Β· (n Β· q + s Β· q + z Β· q)  ∎
    where
    open Tools.Reasoning.PartialOrder ≀-poset

  nr-+ :
    βˆ€ r β†’
    nr p r z₁ s₁ n₁ + nr p r zβ‚‚ sβ‚‚ nβ‚‚ ≀
    nr p r (z₁ + zβ‚‚) (s₁ + sβ‚‚) (n₁ + nβ‚‚)
  nr-+
    {p = p}
    {z₁ = z₁} {s₁ = s₁} {n₁ = n₁}
    {zβ‚‚ = zβ‚‚} {sβ‚‚ = sβ‚‚} {nβ‚‚ = nβ‚‚} = Ξ» where
      𝟘 β†’ begin
        (((πŸ™ ∧ p) Β· n₁ + s₁) ∧ (n₁ + z₁)) +
        (((πŸ™ ∧ p) Β· nβ‚‚ + sβ‚‚) ∧ (nβ‚‚ + zβ‚‚))                            β‰€βŸ¨ +-sub-interchangeable-∧ ((πŸ™ ∧ p) Β· _ + _) _ _ _ ⟩

        (((πŸ™ ∧ p) Β· n₁ + s₁) + ((πŸ™ ∧ p) Β· nβ‚‚ + sβ‚‚)) ∧
        ((n₁ + z₁) + (nβ‚‚ + zβ‚‚))                                      β‰‘βŸ¨ ∧-cong (+-sub-interchangeable-+ ((πŸ™ ∧ p) Β· _) _ _ _)
                                                                          (+-sub-interchangeable-+ n₁ _ _ _) ⟩
        (((πŸ™ ∧ p) Β· n₁ + (πŸ™ ∧ p) Β· nβ‚‚) + (s₁ + sβ‚‚)) ∧
        ((n₁ + nβ‚‚) + (z₁ + zβ‚‚))                                      β‰‘Λ˜βŸ¨ ∧-congΚ³ (+-congΚ³ (Β·-distribΛ‘-+ (πŸ™ ∧ p) _ _)) ⟩

        ((πŸ™ ∧ p) Β· (n₁ + nβ‚‚) + (s₁ + sβ‚‚)) ∧ ((n₁ + nβ‚‚) + (z₁ + zβ‚‚))  ∎
      πŸ™ β†’ begin
        ((πŸ™ + p) Β· n₁ + ≀ω Β· s₁ + z₁) + ((πŸ™ + p) Β· nβ‚‚ + ≀ω Β· sβ‚‚ + zβ‚‚)    β‰‘βŸ¨ +-sub-interchangeable-+ ((πŸ™ + p) Β· _) _ _ _ ⟩
        ((πŸ™ + p) Β· n₁ + (πŸ™ + p) Β· nβ‚‚) + (≀ω Β· s₁ + z₁) + (≀ω Β· sβ‚‚ + zβ‚‚)  β‰‘βŸ¨ +-cong (sym (Β·-distribΛ‘-+ (πŸ™ + p) _ _))
                                                                              (+-sub-interchangeable-+ (≀ω Β· s₁) _ _ _) ⟩
        (πŸ™ + p) Β· (n₁ + nβ‚‚) + (≀ω Β· s₁ + ≀ω Β· sβ‚‚) + (z₁ + zβ‚‚)            β‰‘Λ˜βŸ¨ +-congΛ‘ {x = (πŸ™ + p) Β· _}
                                                                               (+-congΚ³ (Β·-distribΛ‘-+ ≀ω s₁ _)) ⟩
        (πŸ™ + p) Β· (n₁ + nβ‚‚) + ≀ω Β· (s₁ + sβ‚‚) + (z₁ + zβ‚‚)                 ∎
      β‰€πŸ™ β†’ begin
        ((β‰€πŸ™ + p) Β· n₁ + ≀ω Β· s₁ + β‰€πŸ™ Β· z₁) +
        ((β‰€πŸ™ + p) Β· nβ‚‚ + ≀ω Β· sβ‚‚ + β‰€πŸ™ Β· zβ‚‚)                               β‰‘βŸ¨ +-sub-interchangeable-+ ((β‰€πŸ™ + p) Β· _) _ _ _ ⟩

        ((β‰€πŸ™ + p) Β· n₁ + (β‰€πŸ™ + p) Β· nβ‚‚) +
        (≀ω Β· s₁ + β‰€πŸ™ Β· z₁) + (≀ω Β· sβ‚‚ + β‰€πŸ™ Β· zβ‚‚)                         β‰‘βŸ¨ +-cong (sym (Β·-distribΛ‘-+ (β‰€πŸ™ + p) _ _))
                                                                               (+-sub-interchangeable-+ (≀ω Β· s₁) _ _ _) ⟩

        (β‰€πŸ™ + p) Β· (n₁ + nβ‚‚) + (≀ω Β· s₁ + ≀ω Β· sβ‚‚) + (β‰€πŸ™ Β· z₁ + β‰€πŸ™ Β· zβ‚‚)  β‰‘Λ˜βŸ¨ +-congΛ‘ {x = (β‰€πŸ™ + p) Β· _}
                                                                                (+-cong (Β·-distribΛ‘-+ ≀ω s₁ _)
                                                                                   (Β·-distribΛ‘-+ β‰€πŸ™ z₁ _)) ⟩
        (β‰€πŸ™ + p) Β· (n₁ + nβ‚‚) + ≀ω Β· (s₁ + sβ‚‚) + β‰€πŸ™ Β· (z₁ + zβ‚‚)            ∎
      ≀ω β†’ begin
        ≀ω Β· (n₁ + s₁ + z₁) + ≀ω Β· (nβ‚‚ + sβ‚‚ + zβ‚‚)  β‰‘Λ˜βŸ¨ Β·-distribΛ‘-+ ≀ω (n₁ + _) _ ⟩
        ≀ω Β· ((n₁ + s₁ + z₁) + (nβ‚‚ + sβ‚‚ + zβ‚‚))     β‰‘βŸ¨ Β·-congΛ‘ {x = ≀ω} lemma ⟩
        ≀ω Β· ((n₁ + nβ‚‚) + (s₁ + sβ‚‚) + (z₁ + zβ‚‚))   ∎
    where
    lemma =
      (n₁ + s₁ + z₁) + (nβ‚‚ + sβ‚‚ + zβ‚‚)    β‰‘βŸ¨ +-sub-interchangeable-+ n₁ _ _ _ ⟩
      (n₁ + nβ‚‚) + (s₁ + z₁) + (sβ‚‚ + zβ‚‚)  β‰‘βŸ¨ +-congΛ‘ {x = n₁ + _}
                                              (+-sub-interchangeable-+ s₁ _ _ _) ⟩
      (n₁ + nβ‚‚) + (s₁ + sβ‚‚) + (z₁ + zβ‚‚)  ∎
      where
      open Tools.Reasoning.PropositionalEquality

    open Tools.Reasoning.PartialOrder ≀-poset

  nr-zero : βˆ€ r p z s n β†’ n ≀ 𝟘 β†’ nr p r z s n ≀ z
  nr-zero = Ξ» where
    𝟘  𝟘  𝟘  𝟘  𝟘  refl β†’ refl
    𝟘  𝟘  𝟘  𝟘  β‰€πŸ™ refl β†’ refl
    𝟘  𝟘  𝟘  𝟘  ≀ω refl β†’ refl
    𝟘  𝟘  𝟘  πŸ™  𝟘  refl β†’ refl
    𝟘  𝟘  𝟘  πŸ™  β‰€πŸ™ refl β†’ refl
    𝟘  𝟘  𝟘  πŸ™  ≀ω refl β†’ refl
    𝟘  𝟘  𝟘  β‰€πŸ™ 𝟘  refl β†’ refl
    𝟘  𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    𝟘  𝟘  𝟘  β‰€πŸ™ ≀ω refl β†’ refl
    𝟘  𝟘  𝟘  ≀ω 𝟘  refl β†’ refl
    𝟘  𝟘  𝟘  ≀ω β‰€πŸ™ refl β†’ refl
    𝟘  𝟘  𝟘  ≀ω ≀ω refl β†’ refl
    𝟘  𝟘  πŸ™  𝟘  𝟘  refl β†’ refl
    𝟘  𝟘  πŸ™  𝟘  β‰€πŸ™ refl β†’ refl
    𝟘  𝟘  πŸ™  𝟘  ≀ω refl β†’ refl
    𝟘  𝟘  πŸ™  πŸ™  𝟘  refl β†’ refl
    𝟘  𝟘  πŸ™  πŸ™  β‰€πŸ™ refl β†’ refl
    𝟘  𝟘  πŸ™  πŸ™  ≀ω refl β†’ refl
    𝟘  𝟘  πŸ™  β‰€πŸ™ 𝟘  refl β†’ refl
    𝟘  𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    𝟘  𝟘  πŸ™  β‰€πŸ™ ≀ω refl β†’ refl
    𝟘  𝟘  πŸ™  ≀ω 𝟘  refl β†’ refl
    𝟘  𝟘  πŸ™  ≀ω β‰€πŸ™ refl β†’ refl
    𝟘  𝟘  πŸ™  ≀ω ≀ω refl β†’ refl
    𝟘  𝟘  β‰€πŸ™ 𝟘  𝟘  refl β†’ refl
    𝟘  𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ refl β†’ refl
    𝟘  𝟘  β‰€πŸ™ 𝟘  ≀ω refl β†’ refl
    𝟘  𝟘  β‰€πŸ™ πŸ™  𝟘  refl β†’ refl
    𝟘  𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ refl β†’ refl
    𝟘  𝟘  β‰€πŸ™ πŸ™  ≀ω refl β†’ refl
    𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  refl β†’ refl
    𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω refl β†’ refl
    𝟘  𝟘  β‰€πŸ™ ≀ω 𝟘  refl β†’ refl
    𝟘  𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ refl β†’ refl
    𝟘  𝟘  β‰€πŸ™ ≀ω ≀ω refl β†’ refl
    𝟘  𝟘  ≀ω 𝟘  𝟘  refl β†’ refl
    𝟘  𝟘  ≀ω 𝟘  β‰€πŸ™ refl β†’ refl
    𝟘  𝟘  ≀ω 𝟘  ≀ω refl β†’ refl
    𝟘  𝟘  ≀ω πŸ™  𝟘  refl β†’ refl
    𝟘  𝟘  ≀ω πŸ™  β‰€πŸ™ refl β†’ refl
    𝟘  𝟘  ≀ω πŸ™  ≀ω refl β†’ refl
    𝟘  𝟘  ≀ω β‰€πŸ™ 𝟘  refl β†’ refl
    𝟘  𝟘  ≀ω β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    𝟘  𝟘  ≀ω β‰€πŸ™ ≀ω refl β†’ refl
    𝟘  𝟘  ≀ω ≀ω 𝟘  refl β†’ refl
    𝟘  𝟘  ≀ω ≀ω β‰€πŸ™ refl β†’ refl
    𝟘  𝟘  ≀ω ≀ω ≀ω refl β†’ refl
    𝟘  πŸ™  𝟘  𝟘  𝟘  refl β†’ refl
    𝟘  πŸ™  𝟘  𝟘  β‰€πŸ™ refl β†’ refl
    𝟘  πŸ™  𝟘  𝟘  ≀ω refl β†’ refl
    𝟘  πŸ™  𝟘  πŸ™  𝟘  refl β†’ refl
    𝟘  πŸ™  𝟘  πŸ™  β‰€πŸ™ refl β†’ refl
    𝟘  πŸ™  𝟘  πŸ™  ≀ω refl β†’ refl
    𝟘  πŸ™  𝟘  β‰€πŸ™ 𝟘  refl β†’ refl
    𝟘  πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    𝟘  πŸ™  𝟘  β‰€πŸ™ ≀ω refl β†’ refl
    𝟘  πŸ™  𝟘  ≀ω 𝟘  refl β†’ refl
    𝟘  πŸ™  𝟘  ≀ω β‰€πŸ™ refl β†’ refl
    𝟘  πŸ™  𝟘  ≀ω ≀ω refl β†’ refl
    𝟘  πŸ™  πŸ™  𝟘  𝟘  refl β†’ refl
    𝟘  πŸ™  πŸ™  𝟘  β‰€πŸ™ refl β†’ refl
    𝟘  πŸ™  πŸ™  𝟘  ≀ω refl β†’ refl
    𝟘  πŸ™  πŸ™  πŸ™  𝟘  refl β†’ refl
    𝟘  πŸ™  πŸ™  πŸ™  β‰€πŸ™ refl β†’ refl
    𝟘  πŸ™  πŸ™  πŸ™  ≀ω refl β†’ refl
    𝟘  πŸ™  πŸ™  β‰€πŸ™ 𝟘  refl β†’ refl
    𝟘  πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    𝟘  πŸ™  πŸ™  β‰€πŸ™ ≀ω refl β†’ refl
    𝟘  πŸ™  πŸ™  ≀ω 𝟘  refl β†’ refl
    𝟘  πŸ™  πŸ™  ≀ω β‰€πŸ™ refl β†’ refl
    𝟘  πŸ™  πŸ™  ≀ω ≀ω refl β†’ refl
    𝟘  πŸ™  β‰€πŸ™ 𝟘  𝟘  refl β†’ refl
    𝟘  πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ refl β†’ refl
    𝟘  πŸ™  β‰€πŸ™ 𝟘  ≀ω refl β†’ refl
    𝟘  πŸ™  β‰€πŸ™ πŸ™  𝟘  refl β†’ refl
    𝟘  πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ refl β†’ refl
    𝟘  πŸ™  β‰€πŸ™ πŸ™  ≀ω refl β†’ refl
    𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  refl β†’ refl
    𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω refl β†’ refl
    𝟘  πŸ™  β‰€πŸ™ ≀ω 𝟘  refl β†’ refl
    𝟘  πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ refl β†’ refl
    𝟘  πŸ™  β‰€πŸ™ ≀ω ≀ω refl β†’ refl
    𝟘  πŸ™  ≀ω 𝟘  𝟘  refl β†’ refl
    𝟘  πŸ™  ≀ω 𝟘  β‰€πŸ™ refl β†’ refl
    𝟘  πŸ™  ≀ω 𝟘  ≀ω refl β†’ refl
    𝟘  πŸ™  ≀ω πŸ™  𝟘  refl β†’ refl
    𝟘  πŸ™  ≀ω πŸ™  β‰€πŸ™ refl β†’ refl
    𝟘  πŸ™  ≀ω πŸ™  ≀ω refl β†’ refl
    𝟘  πŸ™  ≀ω β‰€πŸ™ 𝟘  refl β†’ refl
    𝟘  πŸ™  ≀ω β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    𝟘  πŸ™  ≀ω β‰€πŸ™ ≀ω refl β†’ refl
    𝟘  πŸ™  ≀ω ≀ω 𝟘  refl β†’ refl
    𝟘  πŸ™  ≀ω ≀ω β‰€πŸ™ refl β†’ refl
    𝟘  πŸ™  ≀ω ≀ω ≀ω refl β†’ refl
    𝟘  β‰€πŸ™ 𝟘  𝟘  𝟘  refl β†’ refl
    𝟘  β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ refl β†’ refl
    𝟘  β‰€πŸ™ 𝟘  𝟘  ≀ω refl β†’ refl
    𝟘  β‰€πŸ™ 𝟘  πŸ™  𝟘  refl β†’ refl
    𝟘  β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ refl β†’ refl
    𝟘  β‰€πŸ™ 𝟘  πŸ™  ≀ω refl β†’ refl
    𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  refl β†’ refl
    𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω refl β†’ refl
    𝟘  β‰€πŸ™ 𝟘  ≀ω 𝟘  refl β†’ refl
    𝟘  β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ refl β†’ refl
    𝟘  β‰€πŸ™ 𝟘  ≀ω ≀ω refl β†’ refl
    𝟘  β‰€πŸ™ πŸ™  𝟘  𝟘  refl β†’ refl
    𝟘  β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ refl β†’ refl
    𝟘  β‰€πŸ™ πŸ™  𝟘  ≀ω refl β†’ refl
    𝟘  β‰€πŸ™ πŸ™  πŸ™  𝟘  refl β†’ refl
    𝟘  β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ refl β†’ refl
    𝟘  β‰€πŸ™ πŸ™  πŸ™  ≀ω refl β†’ refl
    𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  refl β†’ refl
    𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω refl β†’ refl
    𝟘  β‰€πŸ™ πŸ™  ≀ω 𝟘  refl β†’ refl
    𝟘  β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ refl β†’ refl
    𝟘  β‰€πŸ™ πŸ™  ≀ω ≀ω refl β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  refl β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ refl β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω refl β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  refl β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ refl β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω refl β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  refl β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω refl β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  refl β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ refl β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω refl β†’ refl
    𝟘  β‰€πŸ™ ≀ω 𝟘  𝟘  refl β†’ refl
    𝟘  β‰€πŸ™ ≀ω 𝟘  β‰€πŸ™ refl β†’ refl
    𝟘  β‰€πŸ™ ≀ω 𝟘  ≀ω refl β†’ refl
    𝟘  β‰€πŸ™ ≀ω πŸ™  𝟘  refl β†’ refl
    𝟘  β‰€πŸ™ ≀ω πŸ™  β‰€πŸ™ refl β†’ refl
    𝟘  β‰€πŸ™ ≀ω πŸ™  ≀ω refl β†’ refl
    𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ 𝟘  refl β†’ refl
    𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ ≀ω refl β†’ refl
    𝟘  β‰€πŸ™ ≀ω ≀ω 𝟘  refl β†’ refl
    𝟘  β‰€πŸ™ ≀ω ≀ω β‰€πŸ™ refl β†’ refl
    𝟘  β‰€πŸ™ ≀ω ≀ω ≀ω refl β†’ refl
    𝟘  ≀ω 𝟘  𝟘  𝟘  refl β†’ refl
    𝟘  ≀ω 𝟘  𝟘  β‰€πŸ™ refl β†’ refl
    𝟘  ≀ω 𝟘  𝟘  ≀ω refl β†’ refl
    𝟘  ≀ω 𝟘  πŸ™  𝟘  refl β†’ refl
    𝟘  ≀ω 𝟘  πŸ™  β‰€πŸ™ refl β†’ refl
    𝟘  ≀ω 𝟘  πŸ™  ≀ω refl β†’ refl
    𝟘  ≀ω 𝟘  β‰€πŸ™ 𝟘  refl β†’ refl
    𝟘  ≀ω 𝟘  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    𝟘  ≀ω 𝟘  β‰€πŸ™ ≀ω refl β†’ refl
    𝟘  ≀ω 𝟘  ≀ω 𝟘  refl β†’ refl
    𝟘  ≀ω 𝟘  ≀ω β‰€πŸ™ refl β†’ refl
    𝟘  ≀ω 𝟘  ≀ω ≀ω refl β†’ refl
    𝟘  ≀ω πŸ™  𝟘  𝟘  refl β†’ refl
    𝟘  ≀ω πŸ™  𝟘  β‰€πŸ™ refl β†’ refl
    𝟘  ≀ω πŸ™  𝟘  ≀ω refl β†’ refl
    𝟘  ≀ω πŸ™  πŸ™  𝟘  refl β†’ refl
    𝟘  ≀ω πŸ™  πŸ™  β‰€πŸ™ refl β†’ refl
    𝟘  ≀ω πŸ™  πŸ™  ≀ω refl β†’ refl
    𝟘  ≀ω πŸ™  β‰€πŸ™ 𝟘  refl β†’ refl
    𝟘  ≀ω πŸ™  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    𝟘  ≀ω πŸ™  β‰€πŸ™ ≀ω refl β†’ refl
    𝟘  ≀ω πŸ™  ≀ω 𝟘  refl β†’ refl
    𝟘  ≀ω πŸ™  ≀ω β‰€πŸ™ refl β†’ refl
    𝟘  ≀ω πŸ™  ≀ω ≀ω refl β†’ refl
    𝟘  ≀ω β‰€πŸ™ 𝟘  𝟘  refl β†’ refl
    𝟘  ≀ω β‰€πŸ™ 𝟘  β‰€πŸ™ refl β†’ refl
    𝟘  ≀ω β‰€πŸ™ 𝟘  ≀ω refl β†’ refl
    𝟘  ≀ω β‰€πŸ™ πŸ™  𝟘  refl β†’ refl
    𝟘  ≀ω β‰€πŸ™ πŸ™  β‰€πŸ™ refl β†’ refl
    𝟘  ≀ω β‰€πŸ™ πŸ™  ≀ω refl β†’ refl
    𝟘  ≀ω β‰€πŸ™ β‰€πŸ™ 𝟘  refl β†’ refl
    𝟘  ≀ω β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    𝟘  ≀ω β‰€πŸ™ β‰€πŸ™ ≀ω refl β†’ refl
    𝟘  ≀ω β‰€πŸ™ ≀ω 𝟘  refl β†’ refl
    𝟘  ≀ω β‰€πŸ™ ≀ω β‰€πŸ™ refl β†’ refl
    𝟘  ≀ω β‰€πŸ™ ≀ω ≀ω refl β†’ refl
    𝟘  ≀ω ≀ω 𝟘  𝟘  refl β†’ refl
    𝟘  ≀ω ≀ω 𝟘  β‰€πŸ™ refl β†’ refl
    𝟘  ≀ω ≀ω 𝟘  ≀ω refl β†’ refl
    𝟘  ≀ω ≀ω πŸ™  𝟘  refl β†’ refl
    𝟘  ≀ω ≀ω πŸ™  β‰€πŸ™ refl β†’ refl
    𝟘  ≀ω ≀ω πŸ™  ≀ω refl β†’ refl
    𝟘  ≀ω ≀ω β‰€πŸ™ 𝟘  refl β†’ refl
    𝟘  ≀ω ≀ω β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    𝟘  ≀ω ≀ω β‰€πŸ™ ≀ω refl β†’ refl
    𝟘  ≀ω ≀ω ≀ω 𝟘  refl β†’ refl
    𝟘  ≀ω ≀ω ≀ω β‰€πŸ™ refl β†’ refl
    𝟘  ≀ω ≀ω ≀ω ≀ω refl β†’ refl
    πŸ™  𝟘  𝟘  𝟘  𝟘  refl β†’ refl
    πŸ™  𝟘  𝟘  𝟘  β‰€πŸ™ refl β†’ refl
    πŸ™  𝟘  𝟘  𝟘  ≀ω refl β†’ refl
    πŸ™  𝟘  𝟘  πŸ™  𝟘  refl β†’ refl
    πŸ™  𝟘  𝟘  πŸ™  β‰€πŸ™ refl β†’ refl
    πŸ™  𝟘  𝟘  πŸ™  ≀ω refl β†’ refl
    πŸ™  𝟘  𝟘  β‰€πŸ™ 𝟘  refl β†’ refl
    πŸ™  𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    πŸ™  𝟘  𝟘  β‰€πŸ™ ≀ω refl β†’ refl
    πŸ™  𝟘  𝟘  ≀ω 𝟘  refl β†’ refl
    πŸ™  𝟘  𝟘  ≀ω β‰€πŸ™ refl β†’ refl
    πŸ™  𝟘  𝟘  ≀ω ≀ω refl β†’ refl
    πŸ™  𝟘  πŸ™  𝟘  𝟘  refl β†’ refl
    πŸ™  𝟘  πŸ™  𝟘  β‰€πŸ™ refl β†’ refl
    πŸ™  𝟘  πŸ™  𝟘  ≀ω refl β†’ refl
    πŸ™  𝟘  πŸ™  πŸ™  𝟘  refl β†’ refl
    πŸ™  𝟘  πŸ™  πŸ™  β‰€πŸ™ refl β†’ refl
    πŸ™  𝟘  πŸ™  πŸ™  ≀ω refl β†’ refl
    πŸ™  𝟘  πŸ™  β‰€πŸ™ 𝟘  refl β†’ refl
    πŸ™  𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    πŸ™  𝟘  πŸ™  β‰€πŸ™ ≀ω refl β†’ refl
    πŸ™  𝟘  πŸ™  ≀ω 𝟘  refl β†’ refl
    πŸ™  𝟘  πŸ™  ≀ω β‰€πŸ™ refl β†’ refl
    πŸ™  𝟘  πŸ™  ≀ω ≀ω refl β†’ refl
    πŸ™  𝟘  β‰€πŸ™ 𝟘  𝟘  refl β†’ refl
    πŸ™  𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ refl β†’ refl
    πŸ™  𝟘  β‰€πŸ™ 𝟘  ≀ω refl β†’ refl
    πŸ™  𝟘  β‰€πŸ™ πŸ™  𝟘  refl β†’ refl
    πŸ™  𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ refl β†’ refl
    πŸ™  𝟘  β‰€πŸ™ πŸ™  ≀ω refl β†’ refl
    πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  refl β†’ refl
    πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω refl β†’ refl
    πŸ™  𝟘  β‰€πŸ™ ≀ω 𝟘  refl β†’ refl
    πŸ™  𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ refl β†’ refl
    πŸ™  𝟘  β‰€πŸ™ ≀ω ≀ω refl β†’ refl
    πŸ™  𝟘  ≀ω 𝟘  𝟘  refl β†’ refl
    πŸ™  𝟘  ≀ω 𝟘  β‰€πŸ™ refl β†’ refl
    πŸ™  𝟘  ≀ω 𝟘  ≀ω refl β†’ refl
    πŸ™  𝟘  ≀ω πŸ™  𝟘  refl β†’ refl
    πŸ™  𝟘  ≀ω πŸ™  β‰€πŸ™ refl β†’ refl
    πŸ™  𝟘  ≀ω πŸ™  ≀ω refl β†’ refl
    πŸ™  𝟘  ≀ω β‰€πŸ™ 𝟘  refl β†’ refl
    πŸ™  𝟘  ≀ω β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    πŸ™  𝟘  ≀ω β‰€πŸ™ ≀ω refl β†’ refl
    πŸ™  𝟘  ≀ω ≀ω 𝟘  refl β†’ refl
    πŸ™  𝟘  ≀ω ≀ω β‰€πŸ™ refl β†’ refl
    πŸ™  𝟘  ≀ω ≀ω ≀ω refl β†’ refl
    πŸ™  πŸ™  𝟘  𝟘  𝟘  refl β†’ refl
    πŸ™  πŸ™  𝟘  𝟘  β‰€πŸ™ refl β†’ refl
    πŸ™  πŸ™  𝟘  𝟘  ≀ω refl β†’ refl
    πŸ™  πŸ™  𝟘  πŸ™  𝟘  refl β†’ refl
    πŸ™  πŸ™  𝟘  πŸ™  β‰€πŸ™ refl β†’ refl
    πŸ™  πŸ™  𝟘  πŸ™  ≀ω refl β†’ refl
    πŸ™  πŸ™  𝟘  β‰€πŸ™ 𝟘  refl β†’ refl
    πŸ™  πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    πŸ™  πŸ™  𝟘  β‰€πŸ™ ≀ω refl β†’ refl
    πŸ™  πŸ™  𝟘  ≀ω 𝟘  refl β†’ refl
    πŸ™  πŸ™  𝟘  ≀ω β‰€πŸ™ refl β†’ refl
    πŸ™  πŸ™  𝟘  ≀ω ≀ω refl β†’ refl
    πŸ™  πŸ™  πŸ™  𝟘  𝟘  refl β†’ refl
    πŸ™  πŸ™  πŸ™  𝟘  β‰€πŸ™ refl β†’ refl
    πŸ™  πŸ™  πŸ™  𝟘  ≀ω refl β†’ refl
    πŸ™  πŸ™  πŸ™  πŸ™  𝟘  refl β†’ refl
    πŸ™  πŸ™  πŸ™  πŸ™  β‰€πŸ™ refl β†’ refl
    πŸ™  πŸ™  πŸ™  πŸ™  ≀ω refl β†’ refl
    πŸ™  πŸ™  πŸ™  β‰€πŸ™ 𝟘  refl β†’ refl
    πŸ™  πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    πŸ™  πŸ™  πŸ™  β‰€πŸ™ ≀ω refl β†’ refl
    πŸ™  πŸ™  πŸ™  ≀ω 𝟘  refl β†’ refl
    πŸ™  πŸ™  πŸ™  ≀ω β‰€πŸ™ refl β†’ refl
    πŸ™  πŸ™  πŸ™  ≀ω ≀ω refl β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ 𝟘  𝟘  refl β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ refl β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ 𝟘  ≀ω refl β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ πŸ™  𝟘  refl β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ refl β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ πŸ™  ≀ω refl β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  refl β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω refl β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ ≀ω 𝟘  refl β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ refl β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ ≀ω ≀ω refl β†’ refl
    πŸ™  πŸ™  ≀ω 𝟘  𝟘  refl β†’ refl
    πŸ™  πŸ™  ≀ω 𝟘  β‰€πŸ™ refl β†’ refl
    πŸ™  πŸ™  ≀ω 𝟘  ≀ω refl β†’ refl
    πŸ™  πŸ™  ≀ω πŸ™  𝟘  refl β†’ refl
    πŸ™  πŸ™  ≀ω πŸ™  β‰€πŸ™ refl β†’ refl
    πŸ™  πŸ™  ≀ω πŸ™  ≀ω refl β†’ refl
    πŸ™  πŸ™  ≀ω β‰€πŸ™ 𝟘  refl β†’ refl
    πŸ™  πŸ™  ≀ω β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    πŸ™  πŸ™  ≀ω β‰€πŸ™ ≀ω refl β†’ refl
    πŸ™  πŸ™  ≀ω ≀ω 𝟘  refl β†’ refl
    πŸ™  πŸ™  ≀ω ≀ω β‰€πŸ™ refl β†’ refl
    πŸ™  πŸ™  ≀ω ≀ω ≀ω refl β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  𝟘  𝟘  refl β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ refl β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  𝟘  ≀ω refl β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  πŸ™  𝟘  refl β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ refl β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  πŸ™  ≀ω refl β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  refl β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω refl β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  ≀ω 𝟘  refl β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ refl β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  ≀ω ≀ω refl β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  𝟘  𝟘  refl β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ refl β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  𝟘  ≀ω refl β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  πŸ™  𝟘  refl β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ refl β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  πŸ™  ≀ω refl β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  refl β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω refl β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  ≀ω 𝟘  refl β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ refl β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  ≀ω ≀ω refl β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  refl β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ refl β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω refl β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  refl β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ refl β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω refl β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  refl β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω refl β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  refl β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ refl β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω refl β†’ refl
    πŸ™  β‰€πŸ™ ≀ω 𝟘  𝟘  refl β†’ refl
    πŸ™  β‰€πŸ™ ≀ω 𝟘  β‰€πŸ™ refl β†’ refl
    πŸ™  β‰€πŸ™ ≀ω 𝟘  ≀ω refl β†’ refl
    πŸ™  β‰€πŸ™ ≀ω πŸ™  𝟘  refl β†’ refl
    πŸ™  β‰€πŸ™ ≀ω πŸ™  β‰€πŸ™ refl β†’ refl
    πŸ™  β‰€πŸ™ ≀ω πŸ™  ≀ω refl β†’ refl
    πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ 𝟘  refl β†’ refl
    πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ ≀ω refl β†’ refl
    πŸ™  β‰€πŸ™ ≀ω ≀ω 𝟘  refl β†’ refl
    πŸ™  β‰€πŸ™ ≀ω ≀ω β‰€πŸ™ refl β†’ refl
    πŸ™  β‰€πŸ™ ≀ω ≀ω ≀ω refl β†’ refl
    πŸ™  ≀ω 𝟘  𝟘  𝟘  refl β†’ refl
    πŸ™  ≀ω 𝟘  𝟘  β‰€πŸ™ refl β†’ refl
    πŸ™  ≀ω 𝟘  𝟘  ≀ω refl β†’ refl
    πŸ™  ≀ω 𝟘  πŸ™  𝟘  refl β†’ refl
    πŸ™  ≀ω 𝟘  πŸ™  β‰€πŸ™ refl β†’ refl
    πŸ™  ≀ω 𝟘  πŸ™  ≀ω refl β†’ refl
    πŸ™  ≀ω 𝟘  β‰€πŸ™ 𝟘  refl β†’ refl
    πŸ™  ≀ω 𝟘  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    πŸ™  ≀ω 𝟘  β‰€πŸ™ ≀ω refl β†’ refl
    πŸ™  ≀ω 𝟘  ≀ω 𝟘  refl β†’ refl
    πŸ™  ≀ω 𝟘  ≀ω β‰€πŸ™ refl β†’ refl
    πŸ™  ≀ω 𝟘  ≀ω ≀ω refl β†’ refl
    πŸ™  ≀ω πŸ™  𝟘  𝟘  refl β†’ refl
    πŸ™  ≀ω πŸ™  𝟘  β‰€πŸ™ refl β†’ refl
    πŸ™  ≀ω πŸ™  𝟘  ≀ω refl β†’ refl
    πŸ™  ≀ω πŸ™  πŸ™  𝟘  refl β†’ refl
    πŸ™  ≀ω πŸ™  πŸ™  β‰€πŸ™ refl β†’ refl
    πŸ™  ≀ω πŸ™  πŸ™  ≀ω refl β†’ refl
    πŸ™  ≀ω πŸ™  β‰€πŸ™ 𝟘  refl β†’ refl
    πŸ™  ≀ω πŸ™  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    πŸ™  ≀ω πŸ™  β‰€πŸ™ ≀ω refl β†’ refl
    πŸ™  ≀ω πŸ™  ≀ω 𝟘  refl β†’ refl
    πŸ™  ≀ω πŸ™  ≀ω β‰€πŸ™ refl β†’ refl
    πŸ™  ≀ω πŸ™  ≀ω ≀ω refl β†’ refl
    πŸ™  ≀ω β‰€πŸ™ 𝟘  𝟘  refl β†’ refl
    πŸ™  ≀ω β‰€πŸ™ 𝟘  β‰€πŸ™ refl β†’ refl
    πŸ™  ≀ω β‰€πŸ™ 𝟘  ≀ω refl β†’ refl
    πŸ™  ≀ω β‰€πŸ™ πŸ™  𝟘  refl β†’ refl
    πŸ™  ≀ω β‰€πŸ™ πŸ™  β‰€πŸ™ refl β†’ refl
    πŸ™  ≀ω β‰€πŸ™ πŸ™  ≀ω refl β†’ refl
    πŸ™  ≀ω β‰€πŸ™ β‰€πŸ™ 𝟘  refl β†’ refl
    πŸ™  ≀ω β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    πŸ™  ≀ω β‰€πŸ™ β‰€πŸ™ ≀ω refl β†’ refl
    πŸ™  ≀ω β‰€πŸ™ ≀ω 𝟘  refl β†’ refl
    πŸ™  ≀ω β‰€πŸ™ ≀ω β‰€πŸ™ refl β†’ refl
    πŸ™  ≀ω β‰€πŸ™ ≀ω ≀ω refl β†’ refl
    πŸ™  ≀ω ≀ω 𝟘  𝟘  refl β†’ refl
    πŸ™  ≀ω ≀ω 𝟘  β‰€πŸ™ refl β†’ refl
    πŸ™  ≀ω ≀ω 𝟘  ≀ω refl β†’ refl
    πŸ™  ≀ω ≀ω πŸ™  𝟘  refl β†’ refl
    πŸ™  ≀ω ≀ω πŸ™  β‰€πŸ™ refl β†’ refl
    πŸ™  ≀ω ≀ω πŸ™  ≀ω refl β†’ refl
    πŸ™  ≀ω ≀ω β‰€πŸ™ 𝟘  refl β†’ refl
    πŸ™  ≀ω ≀ω β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    πŸ™  ≀ω ≀ω β‰€πŸ™ ≀ω refl β†’ refl
    πŸ™  ≀ω ≀ω ≀ω 𝟘  refl β†’ refl
    πŸ™  ≀ω ≀ω ≀ω β‰€πŸ™ refl β†’ refl
    πŸ™  ≀ω ≀ω ≀ω ≀ω refl β†’ refl
    β‰€πŸ™ 𝟘  𝟘  𝟘  𝟘  refl β†’ refl
    β‰€πŸ™ 𝟘  𝟘  𝟘  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ 𝟘  𝟘  𝟘  ≀ω refl β†’ refl
    β‰€πŸ™ 𝟘  𝟘  πŸ™  𝟘  refl β†’ refl
    β‰€πŸ™ 𝟘  𝟘  πŸ™  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ 𝟘  𝟘  πŸ™  ≀ω refl β†’ refl
    β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ 𝟘  refl β†’ refl
    β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ ≀ω refl β†’ refl
    β‰€πŸ™ 𝟘  𝟘  ≀ω 𝟘  refl β†’ refl
    β‰€πŸ™ 𝟘  𝟘  ≀ω β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ 𝟘  𝟘  ≀ω ≀ω refl β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  𝟘  𝟘  refl β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  𝟘  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  𝟘  ≀ω refl β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  πŸ™  𝟘  refl β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  πŸ™  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  πŸ™  ≀ω refl β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ 𝟘  refl β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ ≀ω refl β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  ≀ω 𝟘  refl β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  ≀ω β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  ≀ω ≀ω refl β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  𝟘  refl β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  ≀ω refl β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ πŸ™  𝟘  refl β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ πŸ™  ≀ω refl β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  refl β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω refl β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω 𝟘  refl β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω ≀ω refl β†’ refl
    β‰€πŸ™ 𝟘  ≀ω 𝟘  𝟘  refl β†’ refl
    β‰€πŸ™ 𝟘  ≀ω 𝟘  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ 𝟘  ≀ω 𝟘  ≀ω refl β†’ refl
    β‰€πŸ™ 𝟘  ≀ω πŸ™  𝟘  refl β†’ refl
    β‰€πŸ™ 𝟘  ≀ω πŸ™  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ 𝟘  ≀ω πŸ™  ≀ω refl β†’ refl
    β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ 𝟘  refl β†’ refl
    β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ ≀ω refl β†’ refl
    β‰€πŸ™ 𝟘  ≀ω ≀ω 𝟘  refl β†’ refl
    β‰€πŸ™ 𝟘  ≀ω ≀ω β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ 𝟘  ≀ω ≀ω ≀ω refl β†’ refl
    β‰€πŸ™ πŸ™  𝟘  𝟘  𝟘  refl β†’ refl
    β‰€πŸ™ πŸ™  𝟘  𝟘  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ πŸ™  𝟘  𝟘  ≀ω refl β†’ refl
    β‰€πŸ™ πŸ™  𝟘  πŸ™  𝟘  refl β†’ refl
    β‰€πŸ™ πŸ™  𝟘  πŸ™  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ πŸ™  𝟘  πŸ™  ≀ω refl β†’ refl
    β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ 𝟘  refl β†’ refl
    β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ ≀ω refl β†’ refl
    β‰€πŸ™ πŸ™  𝟘  ≀ω 𝟘  refl β†’ refl
    β‰€πŸ™ πŸ™  𝟘  ≀ω β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ πŸ™  𝟘  ≀ω ≀ω refl β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  𝟘  𝟘  refl β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  𝟘  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  𝟘  ≀ω refl β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  πŸ™  𝟘  refl β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  πŸ™  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  πŸ™  ≀ω refl β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ 𝟘  refl β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ ≀ω refl β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  ≀ω 𝟘  refl β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  ≀ω β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  ≀ω ≀ω refl β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  𝟘  refl β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  ≀ω refl β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ πŸ™  𝟘  refl β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ πŸ™  ≀ω refl β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  refl β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω refl β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω 𝟘  refl β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω ≀ω refl β†’ refl
    β‰€πŸ™ πŸ™  ≀ω 𝟘  𝟘  refl β†’ refl
    β‰€πŸ™ πŸ™  ≀ω 𝟘  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ πŸ™  ≀ω 𝟘  ≀ω refl β†’ refl
    β‰€πŸ™ πŸ™  ≀ω πŸ™  𝟘  refl β†’ refl
    β‰€πŸ™ πŸ™  ≀ω πŸ™  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ πŸ™  ≀ω πŸ™  ≀ω refl β†’ refl
    β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ 𝟘  refl β†’ refl
    β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ ≀ω refl β†’ refl
    β‰€πŸ™ πŸ™  ≀ω ≀ω 𝟘  refl β†’ refl
    β‰€πŸ™ πŸ™  ≀ω ≀ω β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ πŸ™  ≀ω ≀ω ≀ω refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  𝟘  refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  ≀ω refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  πŸ™  𝟘  refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  πŸ™  ≀ω refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω 𝟘  refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω ≀ω refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  𝟘  refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  ≀ω refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  πŸ™  𝟘  refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  πŸ™  ≀ω refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω 𝟘  refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω ≀ω refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  𝟘  refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  ≀ω refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω πŸ™  𝟘  refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω πŸ™  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω πŸ™  ≀ω refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ 𝟘  refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ ≀ω refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω 𝟘  refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω ≀ω refl β†’ refl
    β‰€πŸ™ ≀ω 𝟘  𝟘  𝟘  refl β†’ refl
    β‰€πŸ™ ≀ω 𝟘  𝟘  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ ≀ω 𝟘  𝟘  ≀ω refl β†’ refl
    β‰€πŸ™ ≀ω 𝟘  πŸ™  𝟘  refl β†’ refl
    β‰€πŸ™ ≀ω 𝟘  πŸ™  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ ≀ω 𝟘  πŸ™  ≀ω refl β†’ refl
    β‰€πŸ™ ≀ω 𝟘  β‰€πŸ™ 𝟘  refl β†’ refl
    β‰€πŸ™ ≀ω 𝟘  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ ≀ω 𝟘  β‰€πŸ™ ≀ω refl β†’ refl
    β‰€πŸ™ ≀ω 𝟘  ≀ω 𝟘  refl β†’ refl
    β‰€πŸ™ ≀ω 𝟘  ≀ω β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ ≀ω 𝟘  ≀ω ≀ω refl β†’ refl
    β‰€πŸ™ ≀ω πŸ™  𝟘  𝟘  refl β†’ refl
    β‰€πŸ™ ≀ω πŸ™  𝟘  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ ≀ω πŸ™  𝟘  ≀ω refl β†’ refl
    β‰€πŸ™ ≀ω πŸ™  πŸ™  𝟘  refl β†’ refl
    β‰€πŸ™ ≀ω πŸ™  πŸ™  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ ≀ω πŸ™  πŸ™  ≀ω refl β†’ refl
    β‰€πŸ™ ≀ω πŸ™  β‰€πŸ™ 𝟘  refl β†’ refl
    β‰€πŸ™ ≀ω πŸ™  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ ≀ω πŸ™  β‰€πŸ™ ≀ω refl β†’ refl
    β‰€πŸ™ ≀ω πŸ™  ≀ω 𝟘  refl β†’ refl
    β‰€πŸ™ ≀ω πŸ™  ≀ω β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ ≀ω πŸ™  ≀ω ≀ω refl β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ 𝟘  𝟘  refl β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ 𝟘  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ 𝟘  ≀ω refl β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ πŸ™  𝟘  refl β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ πŸ™  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ πŸ™  ≀ω refl β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ β‰€πŸ™ 𝟘  refl β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ β‰€πŸ™ ≀ω refl β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ ≀ω 𝟘  refl β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ ≀ω β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ ≀ω ≀ω refl β†’ refl
    β‰€πŸ™ ≀ω ≀ω 𝟘  𝟘  refl β†’ refl
    β‰€πŸ™ ≀ω ≀ω 𝟘  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ ≀ω ≀ω 𝟘  ≀ω refl β†’ refl
    β‰€πŸ™ ≀ω ≀ω πŸ™  𝟘  refl β†’ refl
    β‰€πŸ™ ≀ω ≀ω πŸ™  β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ ≀ω ≀ω πŸ™  ≀ω refl β†’ refl
    β‰€πŸ™ ≀ω ≀ω β‰€πŸ™ 𝟘  refl β†’ refl
    β‰€πŸ™ ≀ω ≀ω β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ ≀ω ≀ω β‰€πŸ™ ≀ω refl β†’ refl
    β‰€πŸ™ ≀ω ≀ω ≀ω 𝟘  refl β†’ refl
    β‰€πŸ™ ≀ω ≀ω ≀ω β‰€πŸ™ refl β†’ refl
    β‰€πŸ™ ≀ω ≀ω ≀ω ≀ω refl β†’ refl
    ≀ω _  𝟘  𝟘  𝟘  refl β†’ refl
    ≀ω _  𝟘  𝟘  β‰€πŸ™ refl β†’ refl
    ≀ω _  𝟘  𝟘  ≀ω refl β†’ refl
    ≀ω _  𝟘  πŸ™  𝟘  refl β†’ refl
    ≀ω _  𝟘  πŸ™  β‰€πŸ™ refl β†’ refl
    ≀ω _  𝟘  πŸ™  ≀ω refl β†’ refl
    ≀ω _  𝟘  β‰€πŸ™ 𝟘  refl β†’ refl
    ≀ω _  𝟘  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    ≀ω _  𝟘  β‰€πŸ™ ≀ω refl β†’ refl
    ≀ω _  𝟘  ≀ω 𝟘  refl β†’ refl
    ≀ω _  𝟘  ≀ω β‰€πŸ™ refl β†’ refl
    ≀ω _  𝟘  ≀ω ≀ω refl β†’ refl
    ≀ω _  πŸ™  𝟘  𝟘  refl β†’ refl
    ≀ω _  πŸ™  𝟘  β‰€πŸ™ refl β†’ refl
    ≀ω _  πŸ™  𝟘  ≀ω refl β†’ refl
    ≀ω _  πŸ™  πŸ™  𝟘  refl β†’ refl
    ≀ω _  πŸ™  πŸ™  β‰€πŸ™ refl β†’ refl
    ≀ω _  πŸ™  πŸ™  ≀ω refl β†’ refl
    ≀ω _  πŸ™  β‰€πŸ™ 𝟘  refl β†’ refl
    ≀ω _  πŸ™  β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    ≀ω _  πŸ™  β‰€πŸ™ ≀ω refl β†’ refl
    ≀ω _  πŸ™  ≀ω 𝟘  refl β†’ refl
    ≀ω _  πŸ™  ≀ω β‰€πŸ™ refl β†’ refl
    ≀ω _  πŸ™  ≀ω ≀ω refl β†’ refl
    ≀ω _  β‰€πŸ™ 𝟘  𝟘  refl β†’ refl
    ≀ω _  β‰€πŸ™ 𝟘  β‰€πŸ™ refl β†’ refl
    ≀ω _  β‰€πŸ™ 𝟘  ≀ω refl β†’ refl
    ≀ω _  β‰€πŸ™ πŸ™  𝟘  refl β†’ refl
    ≀ω _  β‰€πŸ™ πŸ™  β‰€πŸ™ refl β†’ refl
    ≀ω _  β‰€πŸ™ πŸ™  ≀ω refl β†’ refl
    ≀ω _  β‰€πŸ™ β‰€πŸ™ 𝟘  refl β†’ refl
    ≀ω _  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    ≀ω _  β‰€πŸ™ β‰€πŸ™ ≀ω refl β†’ refl
    ≀ω _  β‰€πŸ™ ≀ω 𝟘  refl β†’ refl
    ≀ω _  β‰€πŸ™ ≀ω β‰€πŸ™ refl β†’ refl
    ≀ω _  β‰€πŸ™ ≀ω ≀ω refl β†’ refl
    ≀ω _  ≀ω 𝟘  𝟘  refl β†’ refl
    ≀ω _  ≀ω 𝟘  β‰€πŸ™ refl β†’ refl
    ≀ω _  ≀ω 𝟘  ≀ω refl β†’ refl
    ≀ω _  ≀ω πŸ™  𝟘  refl β†’ refl
    ≀ω _  ≀ω πŸ™  β‰€πŸ™ refl β†’ refl
    ≀ω _  ≀ω πŸ™  ≀ω refl β†’ refl
    ≀ω _  ≀ω β‰€πŸ™ 𝟘  refl β†’ refl
    ≀ω _  ≀ω β‰€πŸ™ β‰€πŸ™ refl β†’ refl
    ≀ω _  ≀ω β‰€πŸ™ ≀ω refl β†’ refl
    ≀ω _  ≀ω ≀ω 𝟘  refl β†’ refl
    ≀ω _  ≀ω ≀ω β‰€πŸ™ refl β†’ refl
    ≀ω _  ≀ω ≀ω ≀ω refl β†’ refl

  nr-suc : βˆ€ r p z s n β†’ nr p r z s n ≀ s + p Β· n + r Β· nr p r z s n
  nr-suc = Ξ» where
    𝟘  𝟘  𝟘  𝟘  𝟘  β†’ refl
    𝟘  𝟘  𝟘  𝟘  πŸ™  β†’ refl
    𝟘  𝟘  𝟘  𝟘  β‰€πŸ™ β†’ refl
    𝟘  𝟘  𝟘  𝟘  ≀ω β†’ refl
    𝟘  𝟘  𝟘  πŸ™  𝟘  β†’ refl
    𝟘  𝟘  𝟘  πŸ™  πŸ™  β†’ refl
    𝟘  𝟘  𝟘  πŸ™  β‰€πŸ™ β†’ refl
    𝟘  𝟘  𝟘  πŸ™  ≀ω β†’ refl
    𝟘  𝟘  𝟘  β‰€πŸ™ 𝟘  β†’ refl
    𝟘  𝟘  𝟘  β‰€πŸ™ πŸ™  β†’ refl
    𝟘  𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  𝟘  𝟘  β‰€πŸ™ ≀ω β†’ refl
    𝟘  𝟘  𝟘  ≀ω 𝟘  β†’ refl
    𝟘  𝟘  𝟘  ≀ω πŸ™  β†’ refl
    𝟘  𝟘  𝟘  ≀ω β‰€πŸ™ β†’ refl
    𝟘  𝟘  𝟘  ≀ω ≀ω β†’ refl
    𝟘  𝟘  πŸ™  𝟘  𝟘  β†’ refl
    𝟘  𝟘  πŸ™  𝟘  πŸ™  β†’ refl
    𝟘  𝟘  πŸ™  𝟘  β‰€πŸ™ β†’ refl
    𝟘  𝟘  πŸ™  𝟘  ≀ω β†’ refl
    𝟘  𝟘  πŸ™  πŸ™  𝟘  β†’ refl
    𝟘  𝟘  πŸ™  πŸ™  πŸ™  β†’ refl
    𝟘  𝟘  πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    𝟘  𝟘  πŸ™  πŸ™  ≀ω β†’ refl
    𝟘  𝟘  πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    𝟘  𝟘  πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    𝟘  𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  𝟘  πŸ™  β‰€πŸ™ ≀ω β†’ refl
    𝟘  𝟘  πŸ™  ≀ω 𝟘  β†’ refl
    𝟘  𝟘  πŸ™  ≀ω πŸ™  β†’ refl
    𝟘  𝟘  πŸ™  ≀ω β‰€πŸ™ β†’ refl
    𝟘  𝟘  πŸ™  ≀ω ≀ω β†’ refl
    𝟘  𝟘  β‰€πŸ™ 𝟘  𝟘  β†’ refl
    𝟘  𝟘  β‰€πŸ™ 𝟘  πŸ™  β†’ refl
    𝟘  𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ β†’ refl
    𝟘  𝟘  β‰€πŸ™ 𝟘  ≀ω β†’ refl
    𝟘  𝟘  β‰€πŸ™ πŸ™  𝟘  β†’ refl
    𝟘  𝟘  β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    𝟘  𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    𝟘  𝟘  β‰€πŸ™ πŸ™  ≀ω β†’ refl
    𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    𝟘  𝟘  β‰€πŸ™ ≀ω 𝟘  β†’ refl
    𝟘  𝟘  β‰€πŸ™ ≀ω πŸ™  β†’ refl
    𝟘  𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    𝟘  𝟘  β‰€πŸ™ ≀ω ≀ω β†’ refl
    𝟘  𝟘  ≀ω 𝟘  𝟘  β†’ refl
    𝟘  𝟘  ≀ω 𝟘  πŸ™  β†’ refl
    𝟘  𝟘  ≀ω 𝟘  β‰€πŸ™ β†’ refl
    𝟘  𝟘  ≀ω 𝟘  ≀ω β†’ refl
    𝟘  𝟘  ≀ω πŸ™  𝟘  β†’ refl
    𝟘  𝟘  ≀ω πŸ™  πŸ™  β†’ refl
    𝟘  𝟘  ≀ω πŸ™  β‰€πŸ™ β†’ refl
    𝟘  𝟘  ≀ω πŸ™  ≀ω β†’ refl
    𝟘  𝟘  ≀ω β‰€πŸ™ 𝟘  β†’ refl
    𝟘  𝟘  ≀ω β‰€πŸ™ πŸ™  β†’ refl
    𝟘  𝟘  ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  𝟘  ≀ω β‰€πŸ™ ≀ω β†’ refl
    𝟘  𝟘  ≀ω ≀ω 𝟘  β†’ refl
    𝟘  𝟘  ≀ω ≀ω πŸ™  β†’ refl
    𝟘  𝟘  ≀ω ≀ω β‰€πŸ™ β†’ refl
    𝟘  𝟘  ≀ω ≀ω ≀ω β†’ refl
    𝟘  πŸ™  𝟘  𝟘  𝟘  β†’ refl
    𝟘  πŸ™  𝟘  𝟘  πŸ™  β†’ refl
    𝟘  πŸ™  𝟘  𝟘  β‰€πŸ™ β†’ refl
    𝟘  πŸ™  𝟘  𝟘  ≀ω β†’ refl
    𝟘  πŸ™  𝟘  πŸ™  𝟘  β†’ refl
    𝟘  πŸ™  𝟘  πŸ™  πŸ™  β†’ refl
    𝟘  πŸ™  𝟘  πŸ™  β‰€πŸ™ β†’ refl
    𝟘  πŸ™  𝟘  πŸ™  ≀ω β†’ refl
    𝟘  πŸ™  𝟘  β‰€πŸ™ 𝟘  β†’ refl
    𝟘  πŸ™  𝟘  β‰€πŸ™ πŸ™  β†’ refl
    𝟘  πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  πŸ™  𝟘  β‰€πŸ™ ≀ω β†’ refl
    𝟘  πŸ™  𝟘  ≀ω 𝟘  β†’ refl
    𝟘  πŸ™  𝟘  ≀ω πŸ™  β†’ refl
    𝟘  πŸ™  𝟘  ≀ω β‰€πŸ™ β†’ refl
    𝟘  πŸ™  𝟘  ≀ω ≀ω β†’ refl
    𝟘  πŸ™  πŸ™  𝟘  𝟘  β†’ refl
    𝟘  πŸ™  πŸ™  𝟘  πŸ™  β†’ refl
    𝟘  πŸ™  πŸ™  𝟘  β‰€πŸ™ β†’ refl
    𝟘  πŸ™  πŸ™  𝟘  ≀ω β†’ refl
    𝟘  πŸ™  πŸ™  πŸ™  𝟘  β†’ refl
    𝟘  πŸ™  πŸ™  πŸ™  πŸ™  β†’ refl
    𝟘  πŸ™  πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    𝟘  πŸ™  πŸ™  πŸ™  ≀ω β†’ refl
    𝟘  πŸ™  πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    𝟘  πŸ™  πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    𝟘  πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  πŸ™  πŸ™  β‰€πŸ™ ≀ω β†’ refl
    𝟘  πŸ™  πŸ™  ≀ω 𝟘  β†’ refl
    𝟘  πŸ™  πŸ™  ≀ω πŸ™  β†’ refl
    𝟘  πŸ™  πŸ™  ≀ω β‰€πŸ™ β†’ refl
    𝟘  πŸ™  πŸ™  ≀ω ≀ω β†’ refl
    𝟘  πŸ™  β‰€πŸ™ 𝟘  𝟘  β†’ refl
    𝟘  πŸ™  β‰€πŸ™ 𝟘  πŸ™  β†’ refl
    𝟘  πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ β†’ refl
    𝟘  πŸ™  β‰€πŸ™ 𝟘  ≀ω β†’ refl
    𝟘  πŸ™  β‰€πŸ™ πŸ™  𝟘  β†’ refl
    𝟘  πŸ™  β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    𝟘  πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    𝟘  πŸ™  β‰€πŸ™ πŸ™  ≀ω β†’ refl
    𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    𝟘  πŸ™  β‰€πŸ™ ≀ω 𝟘  β†’ refl
    𝟘  πŸ™  β‰€πŸ™ ≀ω πŸ™  β†’ refl
    𝟘  πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    𝟘  πŸ™  β‰€πŸ™ ≀ω ≀ω β†’ refl
    𝟘  πŸ™  ≀ω 𝟘  𝟘  β†’ refl
    𝟘  πŸ™  ≀ω 𝟘  πŸ™  β†’ refl
    𝟘  πŸ™  ≀ω 𝟘  β‰€πŸ™ β†’ refl
    𝟘  πŸ™  ≀ω 𝟘  ≀ω β†’ refl
    𝟘  πŸ™  ≀ω πŸ™  𝟘  β†’ refl
    𝟘  πŸ™  ≀ω πŸ™  πŸ™  β†’ refl
    𝟘  πŸ™  ≀ω πŸ™  β‰€πŸ™ β†’ refl
    𝟘  πŸ™  ≀ω πŸ™  ≀ω β†’ refl
    𝟘  πŸ™  ≀ω β‰€πŸ™ 𝟘  β†’ refl
    𝟘  πŸ™  ≀ω β‰€πŸ™ πŸ™  β†’ refl
    𝟘  πŸ™  ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  πŸ™  ≀ω β‰€πŸ™ ≀ω β†’ refl
    𝟘  πŸ™  ≀ω ≀ω 𝟘  β†’ refl
    𝟘  πŸ™  ≀ω ≀ω πŸ™  β†’ refl
    𝟘  πŸ™  ≀ω ≀ω β‰€πŸ™ β†’ refl
    𝟘  πŸ™  ≀ω ≀ω ≀ω β†’ refl
    𝟘  β‰€πŸ™ 𝟘  𝟘  𝟘  β†’ refl
    𝟘  β‰€πŸ™ 𝟘  𝟘  πŸ™  β†’ refl
    𝟘  β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ 𝟘  𝟘  ≀ω β†’ refl
    𝟘  β‰€πŸ™ 𝟘  πŸ™  𝟘  β†’ refl
    𝟘  β‰€πŸ™ 𝟘  πŸ™  πŸ™  β†’ refl
    𝟘  β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ 𝟘  πŸ™  ≀ω β†’ refl
    𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  β†’ refl
    𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ πŸ™  β†’ refl
    𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω β†’ refl
    𝟘  β‰€πŸ™ 𝟘  ≀ω 𝟘  β†’ refl
    𝟘  β‰€πŸ™ 𝟘  ≀ω πŸ™  β†’ refl
    𝟘  β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ 𝟘  ≀ω ≀ω β†’ refl
    𝟘  β‰€πŸ™ πŸ™  𝟘  𝟘  β†’ refl
    𝟘  β‰€πŸ™ πŸ™  𝟘  πŸ™  β†’ refl
    𝟘  β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ πŸ™  𝟘  ≀ω β†’ refl
    𝟘  β‰€πŸ™ πŸ™  πŸ™  𝟘  β†’ refl
    𝟘  β‰€πŸ™ πŸ™  πŸ™  πŸ™  β†’ refl
    𝟘  β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ πŸ™  πŸ™  ≀ω β†’ refl
    𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω β†’ refl
    𝟘  β‰€πŸ™ πŸ™  ≀ω 𝟘  β†’ refl
    𝟘  β‰€πŸ™ πŸ™  ≀ω πŸ™  β†’ refl
    𝟘  β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ πŸ™  ≀ω ≀ω β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  πŸ™  β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω πŸ™  β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω β†’ refl
    𝟘  β‰€πŸ™ ≀ω 𝟘  𝟘  β†’ refl
    𝟘  β‰€πŸ™ ≀ω 𝟘  πŸ™  β†’ refl
    𝟘  β‰€πŸ™ ≀ω 𝟘  β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ ≀ω 𝟘  ≀ω β†’ refl
    𝟘  β‰€πŸ™ ≀ω πŸ™  𝟘  β†’ refl
    𝟘  β‰€πŸ™ ≀ω πŸ™  πŸ™  β†’ refl
    𝟘  β‰€πŸ™ ≀ω πŸ™  β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ ≀ω πŸ™  ≀ω β†’ refl
    𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ 𝟘  β†’ refl
    𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ πŸ™  β†’ refl
    𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ ≀ω β†’ refl
    𝟘  β‰€πŸ™ ≀ω ≀ω 𝟘  β†’ refl
    𝟘  β‰€πŸ™ ≀ω ≀ω πŸ™  β†’ refl
    𝟘  β‰€πŸ™ ≀ω ≀ω β‰€πŸ™ β†’ refl
    𝟘  β‰€πŸ™ ≀ω ≀ω ≀ω β†’ refl
    𝟘  ≀ω 𝟘  𝟘  𝟘  β†’ refl
    𝟘  ≀ω 𝟘  𝟘  πŸ™  β†’ refl
    𝟘  ≀ω 𝟘  𝟘  β‰€πŸ™ β†’ refl
    𝟘  ≀ω 𝟘  𝟘  ≀ω β†’ refl
    𝟘  ≀ω 𝟘  πŸ™  𝟘  β†’ refl
    𝟘  ≀ω 𝟘  πŸ™  πŸ™  β†’ refl
    𝟘  ≀ω 𝟘  πŸ™  β‰€πŸ™ β†’ refl
    𝟘  ≀ω 𝟘  πŸ™  ≀ω β†’ refl
    𝟘  ≀ω 𝟘  β‰€πŸ™ 𝟘  β†’ refl
    𝟘  ≀ω 𝟘  β‰€πŸ™ πŸ™  β†’ refl
    𝟘  ≀ω 𝟘  β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  ≀ω 𝟘  β‰€πŸ™ ≀ω β†’ refl
    𝟘  ≀ω 𝟘  ≀ω 𝟘  β†’ refl
    𝟘  ≀ω 𝟘  ≀ω πŸ™  β†’ refl
    𝟘  ≀ω 𝟘  ≀ω β‰€πŸ™ β†’ refl
    𝟘  ≀ω 𝟘  ≀ω ≀ω β†’ refl
    𝟘  ≀ω πŸ™  𝟘  𝟘  β†’ refl
    𝟘  ≀ω πŸ™  𝟘  πŸ™  β†’ refl
    𝟘  ≀ω πŸ™  𝟘  β‰€πŸ™ β†’ refl
    𝟘  ≀ω πŸ™  𝟘  ≀ω β†’ refl
    𝟘  ≀ω πŸ™  πŸ™  𝟘  β†’ refl
    𝟘  ≀ω πŸ™  πŸ™  πŸ™  β†’ refl
    𝟘  ≀ω πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    𝟘  ≀ω πŸ™  πŸ™  ≀ω β†’ refl
    𝟘  ≀ω πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    𝟘  ≀ω πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    𝟘  ≀ω πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  ≀ω πŸ™  β‰€πŸ™ ≀ω β†’ refl
    𝟘  ≀ω πŸ™  ≀ω 𝟘  β†’ refl
    𝟘  ≀ω πŸ™  ≀ω πŸ™  β†’ refl
    𝟘  ≀ω πŸ™  ≀ω β‰€πŸ™ β†’ refl
    𝟘  ≀ω πŸ™  ≀ω ≀ω β†’ refl
    𝟘  ≀ω β‰€πŸ™ 𝟘  𝟘  β†’ refl
    𝟘  ≀ω β‰€πŸ™ 𝟘  πŸ™  β†’ refl
    𝟘  ≀ω β‰€πŸ™ 𝟘  β‰€πŸ™ β†’ refl
    𝟘  ≀ω β‰€πŸ™ 𝟘  ≀ω β†’ refl
    𝟘  ≀ω β‰€πŸ™ πŸ™  𝟘  β†’ refl
    𝟘  ≀ω β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    𝟘  ≀ω β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    𝟘  ≀ω β‰€πŸ™ πŸ™  ≀ω β†’ refl
    𝟘  ≀ω β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    𝟘  ≀ω β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    𝟘  ≀ω β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  ≀ω β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    𝟘  ≀ω β‰€πŸ™ ≀ω 𝟘  β†’ refl
    𝟘  ≀ω β‰€πŸ™ ≀ω πŸ™  β†’ refl
    𝟘  ≀ω β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    𝟘  ≀ω β‰€πŸ™ ≀ω ≀ω β†’ refl
    𝟘  ≀ω ≀ω 𝟘  𝟘  β†’ refl
    𝟘  ≀ω ≀ω 𝟘  πŸ™  β†’ refl
    𝟘  ≀ω ≀ω 𝟘  β‰€πŸ™ β†’ refl
    𝟘  ≀ω ≀ω 𝟘  ≀ω β†’ refl
    𝟘  ≀ω ≀ω πŸ™  𝟘  β†’ refl
    𝟘  ≀ω ≀ω πŸ™  πŸ™  β†’ refl
    𝟘  ≀ω ≀ω πŸ™  β‰€πŸ™ β†’ refl
    𝟘  ≀ω ≀ω πŸ™  ≀ω β†’ refl
    𝟘  ≀ω ≀ω β‰€πŸ™ 𝟘  β†’ refl
    𝟘  ≀ω ≀ω β‰€πŸ™ πŸ™  β†’ refl
    𝟘  ≀ω ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    𝟘  ≀ω ≀ω β‰€πŸ™ ≀ω β†’ refl
    𝟘  ≀ω ≀ω ≀ω 𝟘  β†’ refl
    𝟘  ≀ω ≀ω ≀ω πŸ™  β†’ refl
    𝟘  ≀ω ≀ω ≀ω β‰€πŸ™ β†’ refl
    𝟘  ≀ω ≀ω ≀ω ≀ω β†’ refl
    πŸ™  𝟘  𝟘  𝟘  𝟘  β†’ refl
    πŸ™  𝟘  𝟘  𝟘  πŸ™  β†’ refl
    πŸ™  𝟘  𝟘  𝟘  β‰€πŸ™ β†’ refl
    πŸ™  𝟘  𝟘  𝟘  ≀ω β†’ refl
    πŸ™  𝟘  𝟘  πŸ™  𝟘  β†’ refl
    πŸ™  𝟘  𝟘  πŸ™  πŸ™  β†’ refl
    πŸ™  𝟘  𝟘  πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  𝟘  𝟘  πŸ™  ≀ω β†’ refl
    πŸ™  𝟘  𝟘  β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  𝟘  𝟘  β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  𝟘  𝟘  β‰€πŸ™ ≀ω β†’ refl
    πŸ™  𝟘  𝟘  ≀ω 𝟘  β†’ refl
    πŸ™  𝟘  𝟘  ≀ω πŸ™  β†’ refl
    πŸ™  𝟘  𝟘  ≀ω β‰€πŸ™ β†’ refl
    πŸ™  𝟘  𝟘  ≀ω ≀ω β†’ refl
    πŸ™  𝟘  πŸ™  𝟘  𝟘  β†’ refl
    πŸ™  𝟘  πŸ™  𝟘  πŸ™  β†’ refl
    πŸ™  𝟘  πŸ™  𝟘  β‰€πŸ™ β†’ refl
    πŸ™  𝟘  πŸ™  𝟘  ≀ω β†’ refl
    πŸ™  𝟘  πŸ™  πŸ™  𝟘  β†’ refl
    πŸ™  𝟘  πŸ™  πŸ™  πŸ™  β†’ refl
    πŸ™  𝟘  πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  𝟘  πŸ™  πŸ™  ≀ω β†’ refl
    πŸ™  𝟘  πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  𝟘  πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  𝟘  πŸ™  β‰€πŸ™ ≀ω β†’ refl
    πŸ™  𝟘  πŸ™  ≀ω 𝟘  β†’ refl
    πŸ™  𝟘  πŸ™  ≀ω πŸ™  β†’ refl
    πŸ™  𝟘  πŸ™  ≀ω β‰€πŸ™ β†’ refl
    πŸ™  𝟘  πŸ™  ≀ω ≀ω β†’ refl
    πŸ™  𝟘  β‰€πŸ™ 𝟘  𝟘  β†’ refl
    πŸ™  𝟘  β‰€πŸ™ 𝟘  πŸ™  β†’ refl
    πŸ™  𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ β†’ refl
    πŸ™  𝟘  β‰€πŸ™ 𝟘  ≀ω β†’ refl
    πŸ™  𝟘  β‰€πŸ™ πŸ™  𝟘  β†’ refl
    πŸ™  𝟘  β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    πŸ™  𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  𝟘  β‰€πŸ™ πŸ™  ≀ω β†’ refl
    πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    πŸ™  𝟘  β‰€πŸ™ ≀ω 𝟘  β†’ refl
    πŸ™  𝟘  β‰€πŸ™ ≀ω πŸ™  β†’ refl
    πŸ™  𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    πŸ™  𝟘  β‰€πŸ™ ≀ω ≀ω β†’ refl
    πŸ™  𝟘  ≀ω 𝟘  𝟘  β†’ refl
    πŸ™  𝟘  ≀ω 𝟘  πŸ™  β†’ refl
    πŸ™  𝟘  ≀ω 𝟘  β‰€πŸ™ β†’ refl
    πŸ™  𝟘  ≀ω 𝟘  ≀ω β†’ refl
    πŸ™  𝟘  ≀ω πŸ™  𝟘  β†’ refl
    πŸ™  𝟘  ≀ω πŸ™  πŸ™  β†’ refl
    πŸ™  𝟘  ≀ω πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  𝟘  ≀ω πŸ™  ≀ω β†’ refl
    πŸ™  𝟘  ≀ω β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  𝟘  ≀ω β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  𝟘  ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  𝟘  ≀ω β‰€πŸ™ ≀ω β†’ refl
    πŸ™  𝟘  ≀ω ≀ω 𝟘  β†’ refl
    πŸ™  𝟘  ≀ω ≀ω πŸ™  β†’ refl
    πŸ™  𝟘  ≀ω ≀ω β‰€πŸ™ β†’ refl
    πŸ™  𝟘  ≀ω ≀ω ≀ω β†’ refl
    πŸ™  πŸ™  𝟘  𝟘  𝟘  β†’ refl
    πŸ™  πŸ™  𝟘  𝟘  πŸ™  β†’ refl
    πŸ™  πŸ™  𝟘  𝟘  β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  𝟘  𝟘  ≀ω β†’ refl
    πŸ™  πŸ™  𝟘  πŸ™  𝟘  β†’ refl
    πŸ™  πŸ™  𝟘  πŸ™  πŸ™  β†’ refl
    πŸ™  πŸ™  𝟘  πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  𝟘  πŸ™  ≀ω β†’ refl
    πŸ™  πŸ™  𝟘  β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  πŸ™  𝟘  β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  𝟘  β‰€πŸ™ ≀ω β†’ refl
    πŸ™  πŸ™  𝟘  ≀ω 𝟘  β†’ refl
    πŸ™  πŸ™  𝟘  ≀ω πŸ™  β†’ refl
    πŸ™  πŸ™  𝟘  ≀ω β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  𝟘  ≀ω ≀ω β†’ refl
    πŸ™  πŸ™  πŸ™  𝟘  𝟘  β†’ refl
    πŸ™  πŸ™  πŸ™  𝟘  πŸ™  β†’ refl
    πŸ™  πŸ™  πŸ™  𝟘  β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  πŸ™  𝟘  ≀ω β†’ refl
    πŸ™  πŸ™  πŸ™  πŸ™  𝟘  β†’ refl
    πŸ™  πŸ™  πŸ™  πŸ™  πŸ™  β†’ refl
    πŸ™  πŸ™  πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  πŸ™  πŸ™  ≀ω β†’ refl
    πŸ™  πŸ™  πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  πŸ™  πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  πŸ™  β‰€πŸ™ ≀ω β†’ refl
    πŸ™  πŸ™  πŸ™  ≀ω 𝟘  β†’ refl
    πŸ™  πŸ™  πŸ™  ≀ω πŸ™  β†’ refl
    πŸ™  πŸ™  πŸ™  ≀ω β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  πŸ™  ≀ω ≀ω β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ 𝟘  𝟘  β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ 𝟘  πŸ™  β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ 𝟘  ≀ω β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ πŸ™  𝟘  β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ πŸ™  ≀ω β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ ≀ω 𝟘  β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ ≀ω πŸ™  β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  β‰€πŸ™ ≀ω ≀ω β†’ refl
    πŸ™  πŸ™  ≀ω 𝟘  𝟘  β†’ refl
    πŸ™  πŸ™  ≀ω 𝟘  πŸ™  β†’ refl
    πŸ™  πŸ™  ≀ω 𝟘  β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  ≀ω 𝟘  ≀ω β†’ refl
    πŸ™  πŸ™  ≀ω πŸ™  𝟘  β†’ refl
    πŸ™  πŸ™  ≀ω πŸ™  πŸ™  β†’ refl
    πŸ™  πŸ™  ≀ω πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  ≀ω πŸ™  ≀ω β†’ refl
    πŸ™  πŸ™  ≀ω β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  πŸ™  ≀ω β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  πŸ™  ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  ≀ω β‰€πŸ™ ≀ω β†’ refl
    πŸ™  πŸ™  ≀ω ≀ω 𝟘  β†’ refl
    πŸ™  πŸ™  ≀ω ≀ω πŸ™  β†’ refl
    πŸ™  πŸ™  ≀ω ≀ω β‰€πŸ™ β†’ refl
    πŸ™  πŸ™  ≀ω ≀ω ≀ω β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  𝟘  𝟘  β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  𝟘  πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  𝟘  ≀ω β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  πŸ™  𝟘  β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  πŸ™  πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  πŸ™  ≀ω β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  ≀ω 𝟘  β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  ≀ω πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ 𝟘  ≀ω ≀ω β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  𝟘  𝟘  β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  𝟘  πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  𝟘  ≀ω β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  πŸ™  𝟘  β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  πŸ™  πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  πŸ™  ≀ω β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  ≀ω 𝟘  β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  ≀ω πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ πŸ™  ≀ω ≀ω β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω β†’ refl
    πŸ™  β‰€πŸ™ ≀ω 𝟘  𝟘  β†’ refl
    πŸ™  β‰€πŸ™ ≀ω 𝟘  πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ ≀ω 𝟘  β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ ≀ω 𝟘  ≀ω β†’ refl
    πŸ™  β‰€πŸ™ ≀ω πŸ™  𝟘  β†’ refl
    πŸ™  β‰€πŸ™ ≀ω πŸ™  πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ ≀ω πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ ≀ω πŸ™  ≀ω β†’ refl
    πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ ≀ω β†’ refl
    πŸ™  β‰€πŸ™ ≀ω ≀ω 𝟘  β†’ refl
    πŸ™  β‰€πŸ™ ≀ω ≀ω πŸ™  β†’ refl
    πŸ™  β‰€πŸ™ ≀ω ≀ω β‰€πŸ™ β†’ refl
    πŸ™  β‰€πŸ™ ≀ω ≀ω ≀ω β†’ refl
    πŸ™  ≀ω 𝟘  𝟘  𝟘  β†’ refl
    πŸ™  ≀ω 𝟘  𝟘  πŸ™  β†’ refl
    πŸ™  ≀ω 𝟘  𝟘  β‰€πŸ™ β†’ refl
    πŸ™  ≀ω 𝟘  𝟘  ≀ω β†’ refl
    πŸ™  ≀ω 𝟘  πŸ™  𝟘  β†’ refl
    πŸ™  ≀ω 𝟘  πŸ™  πŸ™  β†’ refl
    πŸ™  ≀ω 𝟘  πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  ≀ω 𝟘  πŸ™  ≀ω β†’ refl
    πŸ™  ≀ω 𝟘  β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  ≀ω 𝟘  β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  ≀ω 𝟘  β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  ≀ω 𝟘  β‰€πŸ™ ≀ω β†’ refl
    πŸ™  ≀ω 𝟘  ≀ω 𝟘  β†’ refl
    πŸ™  ≀ω 𝟘  ≀ω πŸ™  β†’ refl
    πŸ™  ≀ω 𝟘  ≀ω β‰€πŸ™ β†’ refl
    πŸ™  ≀ω 𝟘  ≀ω ≀ω β†’ refl
    πŸ™  ≀ω πŸ™  𝟘  𝟘  β†’ refl
    πŸ™  ≀ω πŸ™  𝟘  πŸ™  β†’ refl
    πŸ™  ≀ω πŸ™  𝟘  β‰€πŸ™ β†’ refl
    πŸ™  ≀ω πŸ™  𝟘  ≀ω β†’ refl
    πŸ™  ≀ω πŸ™  πŸ™  𝟘  β†’ refl
    πŸ™  ≀ω πŸ™  πŸ™  πŸ™  β†’ refl
    πŸ™  ≀ω πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  ≀ω πŸ™  πŸ™  ≀ω β†’ refl
    πŸ™  ≀ω πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  ≀ω πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  ≀ω πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  ≀ω πŸ™  β‰€πŸ™ ≀ω β†’ refl
    πŸ™  ≀ω πŸ™  ≀ω 𝟘  β†’ refl
    πŸ™  ≀ω πŸ™  ≀ω πŸ™  β†’ refl
    πŸ™  ≀ω πŸ™  ≀ω β‰€πŸ™ β†’ refl
    πŸ™  ≀ω πŸ™  ≀ω ≀ω β†’ refl
    πŸ™  ≀ω β‰€πŸ™ 𝟘  𝟘  β†’ refl
    πŸ™  ≀ω β‰€πŸ™ 𝟘  πŸ™  β†’ refl
    πŸ™  ≀ω β‰€πŸ™ 𝟘  β‰€πŸ™ β†’ refl
    πŸ™  ≀ω β‰€πŸ™ 𝟘  ≀ω β†’ refl
    πŸ™  ≀ω β‰€πŸ™ πŸ™  𝟘  β†’ refl
    πŸ™  ≀ω β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    πŸ™  ≀ω β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  ≀ω β‰€πŸ™ πŸ™  ≀ω β†’ refl
    πŸ™  ≀ω β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  ≀ω β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  ≀ω β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  ≀ω β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    πŸ™  ≀ω β‰€πŸ™ ≀ω 𝟘  β†’ refl
    πŸ™  ≀ω β‰€πŸ™ ≀ω πŸ™  β†’ refl
    πŸ™  ≀ω β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    πŸ™  ≀ω β‰€πŸ™ ≀ω ≀ω β†’ refl
    πŸ™  ≀ω ≀ω 𝟘  𝟘  β†’ refl
    πŸ™  ≀ω ≀ω 𝟘  πŸ™  β†’ refl
    πŸ™  ≀ω ≀ω 𝟘  β‰€πŸ™ β†’ refl
    πŸ™  ≀ω ≀ω 𝟘  ≀ω β†’ refl
    πŸ™  ≀ω ≀ω πŸ™  𝟘  β†’ refl
    πŸ™  ≀ω ≀ω πŸ™  πŸ™  β†’ refl
    πŸ™  ≀ω ≀ω πŸ™  β‰€πŸ™ β†’ refl
    πŸ™  ≀ω ≀ω πŸ™  ≀ω β†’ refl
    πŸ™  ≀ω ≀ω β‰€πŸ™ 𝟘  β†’ refl
    πŸ™  ≀ω ≀ω β‰€πŸ™ πŸ™  β†’ refl
    πŸ™  ≀ω ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    πŸ™  ≀ω ≀ω β‰€πŸ™ ≀ω β†’ refl
    πŸ™  ≀ω ≀ω ≀ω 𝟘  β†’ refl
    πŸ™  ≀ω ≀ω ≀ω πŸ™  β†’ refl
    πŸ™  ≀ω ≀ω ≀ω β‰€πŸ™ β†’ refl
    πŸ™  ≀ω ≀ω ≀ω ≀ω β†’ refl
    β‰€πŸ™ 𝟘  𝟘  𝟘  𝟘  β†’ refl
    β‰€πŸ™ 𝟘  𝟘  𝟘  πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  𝟘  𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  𝟘  𝟘  ≀ω β†’ refl
    β‰€πŸ™ 𝟘  𝟘  πŸ™  𝟘  β†’ refl
    β‰€πŸ™ 𝟘  𝟘  πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  𝟘  πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  𝟘  πŸ™  ≀ω β†’ refl
    β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ 𝟘  𝟘  ≀ω 𝟘  β†’ refl
    β‰€πŸ™ 𝟘  𝟘  ≀ω πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  𝟘  ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  𝟘  ≀ω ≀ω β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  𝟘  𝟘  β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  𝟘  πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  𝟘  ≀ω β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  πŸ™  𝟘  β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  πŸ™  ≀ω β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  ≀ω 𝟘  β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  ≀ω πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  πŸ™  ≀ω ≀ω β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  𝟘  β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  ≀ω β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ πŸ™  𝟘  β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ πŸ™  ≀ω β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω 𝟘  β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω ≀ω β†’ refl
    β‰€πŸ™ 𝟘  ≀ω 𝟘  𝟘  β†’ refl
    β‰€πŸ™ 𝟘  ≀ω 𝟘  πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  ≀ω 𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  ≀ω 𝟘  ≀ω β†’ refl
    β‰€πŸ™ 𝟘  ≀ω πŸ™  𝟘  β†’ refl
    β‰€πŸ™ 𝟘  ≀ω πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  ≀ω πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  ≀ω πŸ™  ≀ω β†’ refl
    β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ 𝟘  ≀ω ≀ω 𝟘  β†’ refl
    β‰€πŸ™ 𝟘  ≀ω ≀ω πŸ™  β†’ refl
    β‰€πŸ™ 𝟘  ≀ω ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ 𝟘  ≀ω ≀ω ≀ω β†’ refl
    β‰€πŸ™ πŸ™  𝟘  𝟘  𝟘  β†’ refl
    β‰€πŸ™ πŸ™  𝟘  𝟘  πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  𝟘  𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  𝟘  𝟘  ≀ω β†’ refl
    β‰€πŸ™ πŸ™  𝟘  πŸ™  𝟘  β†’ refl
    β‰€πŸ™ πŸ™  𝟘  πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  𝟘  πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  𝟘  πŸ™  ≀ω β†’ refl
    β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ πŸ™  𝟘  ≀ω 𝟘  β†’ refl
    β‰€πŸ™ πŸ™  𝟘  ≀ω πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  𝟘  ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  𝟘  ≀ω ≀ω β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  𝟘  𝟘  β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  𝟘  πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  𝟘  ≀ω β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  πŸ™  𝟘  β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  πŸ™  ≀ω β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  ≀ω 𝟘  β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  ≀ω πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  πŸ™  ≀ω ≀ω β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  𝟘  β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  ≀ω β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ πŸ™  𝟘  β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ πŸ™  ≀ω β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω 𝟘  β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω ≀ω β†’ refl
    β‰€πŸ™ πŸ™  ≀ω 𝟘  𝟘  β†’ refl
    β‰€πŸ™ πŸ™  ≀ω 𝟘  πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  ≀ω 𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  ≀ω 𝟘  ≀ω β†’ refl
    β‰€πŸ™ πŸ™  ≀ω πŸ™  𝟘  β†’ refl
    β‰€πŸ™ πŸ™  ≀ω πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  ≀ω πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  ≀ω πŸ™  ≀ω β†’ refl
    β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ πŸ™  ≀ω ≀ω 𝟘  β†’ refl
    β‰€πŸ™ πŸ™  ≀ω ≀ω πŸ™  β†’ refl
    β‰€πŸ™ πŸ™  ≀ω ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ πŸ™  ≀ω ≀ω ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  πŸ™  𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  πŸ™  ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω 𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  πŸ™  𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  πŸ™  ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω 𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ πŸ™  𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ πŸ™  ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω 𝟘  ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω πŸ™  𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω πŸ™  ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω 𝟘  β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω πŸ™  β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ β‰€πŸ™ ≀ω ≀ω ≀ω β†’ refl
    β‰€πŸ™ ≀ω 𝟘  𝟘  𝟘  β†’ refl
    β‰€πŸ™ ≀ω 𝟘  𝟘  πŸ™  β†’ refl
    β‰€πŸ™ ≀ω 𝟘  𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω 𝟘  𝟘  ≀ω β†’ refl
    β‰€πŸ™ ≀ω 𝟘  πŸ™  𝟘  β†’ refl
    β‰€πŸ™ ≀ω 𝟘  πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ ≀ω 𝟘  πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω 𝟘  πŸ™  ≀ω β†’ refl
    β‰€πŸ™ ≀ω 𝟘  β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ ≀ω 𝟘  β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ ≀ω 𝟘  β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω 𝟘  β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ ≀ω 𝟘  ≀ω 𝟘  β†’ refl
    β‰€πŸ™ ≀ω 𝟘  ≀ω πŸ™  β†’ refl
    β‰€πŸ™ ≀ω 𝟘  ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω 𝟘  ≀ω ≀ω β†’ refl
    β‰€πŸ™ ≀ω πŸ™  𝟘  𝟘  β†’ refl
    β‰€πŸ™ ≀ω πŸ™  𝟘  πŸ™  β†’ refl
    β‰€πŸ™ ≀ω πŸ™  𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω πŸ™  𝟘  ≀ω β†’ refl
    β‰€πŸ™ ≀ω πŸ™  πŸ™  𝟘  β†’ refl
    β‰€πŸ™ ≀ω πŸ™  πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ ≀ω πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω πŸ™  πŸ™  ≀ω β†’ refl
    β‰€πŸ™ ≀ω πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ ≀ω πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ ≀ω πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω πŸ™  β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ ≀ω πŸ™  ≀ω 𝟘  β†’ refl
    β‰€πŸ™ ≀ω πŸ™  ≀ω πŸ™  β†’ refl
    β‰€πŸ™ ≀ω πŸ™  ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω πŸ™  ≀ω ≀ω β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ 𝟘  𝟘  β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ 𝟘  πŸ™  β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ 𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ 𝟘  ≀ω β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ πŸ™  𝟘  β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ πŸ™  ≀ω β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ ≀ω 𝟘  β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ ≀ω πŸ™  β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω β‰€πŸ™ ≀ω ≀ω β†’ refl
    β‰€πŸ™ ≀ω ≀ω 𝟘  𝟘  β†’ refl
    β‰€πŸ™ ≀ω ≀ω 𝟘  πŸ™  β†’ refl
    β‰€πŸ™ ≀ω ≀ω 𝟘  β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω ≀ω 𝟘  ≀ω β†’ refl
    β‰€πŸ™ ≀ω ≀ω πŸ™  𝟘  β†’ refl
    β‰€πŸ™ ≀ω ≀ω πŸ™  πŸ™  β†’ refl
    β‰€πŸ™ ≀ω ≀ω πŸ™  β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω ≀ω πŸ™  ≀ω β†’ refl
    β‰€πŸ™ ≀ω ≀ω β‰€πŸ™ 𝟘  β†’ refl
    β‰€πŸ™ ≀ω ≀ω β‰€πŸ™ πŸ™  β†’ refl
    β‰€πŸ™ ≀ω ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω ≀ω β‰€πŸ™ ≀ω β†’ refl
    β‰€πŸ™ ≀ω ≀ω ≀ω 𝟘  β†’ refl
    β‰€πŸ™ ≀ω ≀ω ≀ω πŸ™  β†’ refl
    β‰€πŸ™ ≀ω ≀ω ≀ω β‰€πŸ™ β†’ refl
    β‰€πŸ™ ≀ω ≀ω ≀ω ≀ω β†’ refl
    ≀ω 𝟘  𝟘  𝟘  𝟘  β†’ refl
    ≀ω πŸ™  𝟘  𝟘  𝟘  β†’ refl
    ≀ω β‰€πŸ™ 𝟘  𝟘  𝟘  β†’ refl
    ≀ω ≀ω 𝟘  𝟘  𝟘  β†’ refl
    ≀ω _  𝟘  𝟘  πŸ™  β†’ refl
    ≀ω _  𝟘  𝟘  β‰€πŸ™ β†’ refl
    ≀ω _  𝟘  𝟘  ≀ω β†’ refl
    ≀ω _  𝟘  πŸ™  𝟘  β†’ refl
    ≀ω _  𝟘  πŸ™  πŸ™  β†’ refl
    ≀ω _  𝟘  πŸ™  β‰€πŸ™ β†’ refl
    ≀ω _  𝟘  πŸ™  ≀ω β†’ refl
    ≀ω _  𝟘  β‰€πŸ™ 𝟘  β†’ refl
    ≀ω _  𝟘  β‰€πŸ™ πŸ™  β†’ refl
    ≀ω _  𝟘  β‰€πŸ™ β‰€πŸ™ β†’ refl
    ≀ω _  𝟘  β‰€πŸ™ ≀ω β†’ refl
    ≀ω _  𝟘  ≀ω 𝟘  β†’ refl
    ≀ω _  𝟘  ≀ω πŸ™  β†’ refl
    ≀ω _  𝟘  ≀ω β‰€πŸ™ β†’ refl
    ≀ω _  𝟘  ≀ω ≀ω β†’ refl
    ≀ω _  πŸ™  𝟘  𝟘  β†’ refl
    ≀ω _  πŸ™  𝟘  πŸ™  β†’ refl
    ≀ω _  πŸ™  𝟘  β‰€πŸ™ β†’ refl
    ≀ω _  πŸ™  𝟘  ≀ω β†’ refl
    ≀ω _  πŸ™  πŸ™  𝟘  β†’ refl
    ≀ω _  πŸ™  πŸ™  πŸ™  β†’ refl
    ≀ω _  πŸ™  πŸ™  β‰€πŸ™ β†’ refl
    ≀ω _  πŸ™  πŸ™  ≀ω β†’ refl
    ≀ω _  πŸ™  β‰€πŸ™ 𝟘  β†’ refl
    ≀ω _  πŸ™  β‰€πŸ™ πŸ™  β†’ refl
    ≀ω _  πŸ™  β‰€πŸ™ β‰€πŸ™ β†’ refl
    ≀ω _  πŸ™  β‰€πŸ™ ≀ω β†’ refl
    ≀ω _  πŸ™  ≀ω 𝟘  β†’ refl
    ≀ω _  πŸ™  ≀ω πŸ™  β†’ refl
    ≀ω _  πŸ™  ≀ω β‰€πŸ™ β†’ refl
    ≀ω _  πŸ™  ≀ω ≀ω β†’ refl
    ≀ω _  β‰€πŸ™ 𝟘  𝟘  β†’ refl
    ≀ω _  β‰€πŸ™ 𝟘  πŸ™  β†’ refl
    ≀ω _  β‰€πŸ™ 𝟘  β‰€πŸ™ β†’ refl
    ≀ω _  β‰€πŸ™ 𝟘  ≀ω β†’ refl
    ≀ω _  β‰€πŸ™ πŸ™  𝟘  β†’ refl
    ≀ω _  β‰€πŸ™ πŸ™  πŸ™  β†’ refl
    ≀ω _  β‰€πŸ™ πŸ™  β‰€πŸ™ β†’ refl
    ≀ω _  β‰€πŸ™ πŸ™  ≀ω β†’ refl
    ≀ω _  β‰€πŸ™ β‰€πŸ™ 𝟘  β†’ refl
    ≀ω _  β‰€πŸ™ β‰€πŸ™ πŸ™  β†’ refl
    ≀ω _  β‰€πŸ™ β‰€πŸ™ β‰€πŸ™ β†’ refl
    ≀ω _  β‰€πŸ™ β‰€πŸ™ ≀ω β†’ refl
    ≀ω _  β‰€πŸ™ ≀ω 𝟘  β†’ refl
    ≀ω _  β‰€πŸ™ ≀ω πŸ™  β†’ refl
    ≀ω _  β‰€πŸ™ ≀ω β‰€πŸ™ β†’ refl
    ≀ω _  β‰€πŸ™ ≀ω ≀ω β†’ refl
    ≀ω _  ≀ω 𝟘  𝟘  β†’ refl
    ≀ω _  ≀ω 𝟘  πŸ™  β†’ refl
    ≀ω _  ≀ω 𝟘  β‰€πŸ™ β†’ refl
    ≀ω _  ≀ω 𝟘  ≀ω β†’ refl
    ≀ω _  ≀ω πŸ™  𝟘  β†’ refl
    ≀ω _  ≀ω πŸ™  πŸ™  β†’ refl
    ≀ω _  ≀ω πŸ™  β‰€πŸ™ β†’ refl
    ≀ω _  ≀ω πŸ™  ≀ω β†’ refl
    ≀ω _  ≀ω β‰€πŸ™ 𝟘  β†’ refl
    ≀ω _  ≀ω β‰€πŸ™ πŸ™  β†’ refl
    ≀ω _  ≀ω β‰€πŸ™ β‰€πŸ™ β†’ refl
    ≀ω _  ≀ω β‰€πŸ™ ≀ω β†’ refl
    ≀ω _  ≀ω ≀ω 𝟘  β†’ refl
    ≀ω _  ≀ω ≀ω πŸ™  β†’ refl
    ≀ω _  ≀ω ≀ω β‰€πŸ™ β†’ refl
    ≀ω _  ≀ω ≀ω ≀ω β†’ refl

-- A modality defined using linear-or-affine-has-nr.

linear-or-affine : Modality-variant β†’ Modality
linear-or-affine variant = record
  { variant            = variant
  ; semiring-with-meet = linear-or-affine-semiring-with-meet
  ; 𝟘-well-behaved     = Ξ» _ β†’ linear-or-affine-has-well-behaved-zero
  ; has-nr             = Ξ» _ β†’ linear-or-affine-has-nr
  }

------------------------------------------------------------------------
-- Instances of Full-reduction-assumptions

-- Instances of Type-restrictions and Usage-restrictions are suitable
-- for the full reduction theorem if
-- * whenever UnitΛ’-allowed holds, then StarΛ’-sink holds,
-- * UnitΚ·-allowed and UnitΚ·-Ξ· do not both hold,
-- * Σ˒-allowed 𝟘 p does not hold,
-- * Ξ£Λ’-allowedΒ β‰€πŸ™Β p does not hold, and
-- * Ξ£Λ’-allowed ≀ω p does not hold.

Suitable-for-full-reduction :
  βˆ€ variant β†’
  Type-restrictions (linear-or-affine variant) β†’
  Usage-restrictions (linear-or-affine variant) β†’
  Set
Suitable-for-full-reduction variant rs us =
  (UnitΛ’-allowed β†’ StarΛ’-sink) Γ—
  (UnitΚ·-allowed β†’ Β¬ UnitΚ·-Ξ·) Γ—
  (βˆ€ p β†’ Β¬ Ξ£Λ’-allowed 𝟘 p) Γ—
  (βˆ€ p β†’ Β¬ Ξ£Λ’-allowed β‰€πŸ™ p) Γ—
  (βˆ€ p β†’ Β¬ Ξ£Λ’-allowed ≀ω p)
  where
  open Type-restrictions  rs
  open Usage-restrictions us

-- Given an instance of Type-restrictionsΒ (linear-or-affineΒ variant)
-- one can create a "suitable" instance.

suitable-for-full-reduction :
  Type-restrictions (linear-or-affine variant) β†’
  βˆƒ Ξ» rs β†’ Suitable-for-full-reduction variant rs urs
suitable-for-full-reduction {urs} rs =
    record rs
      { Unit-allowed = Ξ» where
          𝕀 β†’ UnitΛ’-allowed Γ— StarΛ’-sink
          𝕨 β†’ UnitΚ·-allowed Γ— Β¬ UnitΚ·-Ξ·
      ; Ξ Ξ£-allowed   = Ξ» b p q β†’
          Ξ Ξ£-allowed b p q Γ— (b ≑ BMΞ£ 𝕀 β†’ p ≑ πŸ™)
      ; []-cong-allowed = Ξ» where
          𝕀 β†’ βŠ₯
          𝕨 β†’ []-congΚ·-allowed Γ— Β¬ UnitΚ·-Ξ·
      ; []-cong→Erased = λ where
          {s = 𝕨} (ok , no-Ξ·) β†’
            case []-cong→Erased ok of λ
              (ok₁ , okβ‚‚) β†’
            (ok₁ , no-Ξ·) , okβ‚‚ , (Ξ» ())
      ; []-cong→¬Trivial = λ where
          {s = 𝕨} β†’ []-congβ†’Β¬Trivial βˆ˜β†’ proj₁
      }
  , projβ‚‚
  , projβ‚‚
  , (Ξ» _ β†’ ((Ξ» ()) βˆ˜β†’ (_$ PE.refl)) βˆ˜β†’ projβ‚‚)
  , (Ξ» _ β†’ ((Ξ» ()) βˆ˜β†’ (_$ PE.refl)) βˆ˜β†’ projβ‚‚)
  , (Ξ» _ β†’ ((Ξ» ()) βˆ˜β†’ (_$ PE.refl)) βˆ˜β†’ projβ‚‚)
  where
  open Type-restrictions rs
  open Usage-restrictions urs

-- The full reduction assumptions hold for any instance of
-- linear-or-affine and any "suitable" Type-restrictions and
-- Usage-restrictions.

full-reduction-assumptions :
  Suitable-for-full-reduction variant trs urs β†’
  Full-reduction-assumptions trs urs
full-reduction-assumptions (sink , no-Ξ· , ¬𝟘 , Β¬β‰€πŸ™ , ¬≀ω) = record
  { sinkβŠŽπŸ™β‰€πŸ˜ = Ξ» where
      {s = 𝕀} ok _         β†’ inj₁ (refl , sink ok)
      {s = 𝕨} _  (inj₁ ())
      {s = 𝕨} ok (injβ‚‚ Ξ·)  β†’ βŠ₯-elim (no-Ξ· ok Ξ·)
  ; β‰‘πŸ™βŠŽπŸ™β‰€πŸ˜ = Ξ» where
      {p = 𝟘}  ok β†’ βŠ₯-elim (¬𝟘 _ ok)
      {p = β‰€πŸ™} ok β†’ βŠ₯-elim (Β¬β‰€πŸ™ _ ok)
      {p = ≀ω} ok β†’ βŠ₯-elim (¬≀ω _ ok)
      {p = πŸ™}  _  β†’ inj₁ refl
  }

-- Type and usage restrictions that satisfy the full reduction
-- assumptions are "suitable".

full-reduction-assumptions-suitable :
  Full-reduction-assumptions trs urs β†’
  Suitable-for-full-reduction variant trs urs
full-reduction-assumptions-suitable {urs = urs} as =
     (Ξ» ok β†’ case sinkβŠŽπŸ™β‰€πŸ˜ ok (inj₁ refl) of Ξ» where
        (inj₁ (_ , sink)) β†’ sink
        (injβ‚‚ ()))
   , (Ξ» ok Ξ· β†’ case sinkβŠŽπŸ™β‰€πŸ˜ ok (injβ‚‚ Ξ·) of Ξ» where
        (inj₁ (() , _))
        (injβ‚‚ ()))
   , (Ξ» p Ξ£-ok β†’ case β‰‘πŸ™βŠŽπŸ™β‰€πŸ˜ Ξ£-ok of Ξ» where
        (inj₁ ())
        (injβ‚‚ (_ , _ , ())))
   , (Ξ» p Ξ£-ok β†’ case β‰‘πŸ™βŠŽπŸ™β‰€πŸ˜ Ξ£-ok of Ξ» where
        (inj₁ ())
        (injβ‚‚ (() , _)))
   , Ξ» p Ξ£-ok β†’ case β‰‘πŸ™βŠŽπŸ™β‰€πŸ˜ Ξ£-ok of Ξ» where
        (inj₁ ())
        (injβ‚‚ (() , _))
  where
  open Full-reduction-assumptions as
  open Usage-restrictions urs