open import Relation.Binary

module MatrixFuncNormalization.MatrixPropsAfter {c ℓ₁ ℓ₂} (totalOrder : StrictTotalOrder c ℓ₁ ℓ₂) where

open import Level using (Level; _⊔_; Lift; lower; lift)
open import Function
open import Data.Unit
open import Data.Bool using (true; false)
open import Data.Product
open import Data.Nat using (; z≤n; s≤s; suc)
open import Data.Nat.Properties as  hiding (<⇒≢; _≤?_; _≟_; ≤∧≢⇒<; <-asym; <-trans)
open import Data.Fin.Base as F using (Fin; zero; suc; inject₁; fromℕ)
open import Data.Fin.Properties hiding (≤-refl; <-trans)
open import Data.Sum as Π
open import Data.Vec.Functional
open import Relation.Nullary.Construct.Add.Infimum
open import Relation.Binary.PropositionalEquality as  using (_≡_; _≢_; refl; sym)
import Relation.Binary.Construct.Add.Infimum.Strict as AddInfMod
import Relation.Binary.Construct.Add.Point.Equality as Equality
import Relation.Binary.Construct.StrictToNonStrict as StrictToNonStrict
import Relation.Binary.Construct.Add.Infimum.NonStrict as NonStrict
open import Relation.Unary.Consequences
open import Relation.Nullary
open import Relation.Nullary.Decidable
open import Algebra

open import MatrixNormalization.FinProps
open import lbry

module A′ = StrictTotalOrder totalOrder
open AddInfMod A′._<_

private variable
  n : 

<₋-totalOrder : StrictTotalOrder _ _ _
<₋-totalOrder = record { isStrictTotalOrder = <₋-isStrictTotalOrder A′.isStrictTotalOrder }

module TO = StrictTotalOrder totalOrder
open module STO = StrictTotalOrder <₋-totalOrder renaming (Carrier to A) hiding (_≟_; _>_)
open module  = IsEquivalence STO.isEquivalence hiding (sym)
open StrictToNonStrict _≈_ _<_
open Equality _≈_ renaming (≈∙-refl to ≈∙-refl′)
open FinProps
open NonStrict TO._<_

_>_ = flip _<_

_<′_ : Rel A _
_<′_ = _≤₋_
_>′_ = flip _<′_

AllRowsNormalizedRight : Vector A n  Set _
AllRowsNormalizedRight = _Preserves F._<_  _<′_

simpleFinProps : FinProps (Vector A (ℕ.suc n)) n
Pij simpleFinProps i j i≤j a = 
Pi simpleFinProps i a = 
P simpleFinProps a = 
Pab simpleFinProps i j i≢j a b = 
Pij→Pi simpleFinProps i a pij = _
Pi→P simpleFinProps a pi = _
Pi→Pii simpleFinProps i a pi = _
Ps simpleFinProps i j i≤j a b pij pab = _
P00 simpleFinProps a = _