Equations
- Lean.Meta.Linear.instInhabitedVar = { default := { id := default } }
Equations
- Lean.Meta.Linear.instOrdVar = { compare := [anonymous] }
Equations
- Lean.Meta.Linear.instReprVar = { reprPrec := [anonymous] }
Equations
- Lean.Meta.Linear.instLTVar = { lt := fun a b => a.id < b.id }
instance
Lean.Meta.Linear.instDecidableLtVarInstLTVar
(a : Lean.Meta.Linear.Var)
(b : Lean.Meta.Linear.Var)
:
Equations
- Lean.Meta.Linear.instDecidableLtVarInstLTVar a b = inferInstanceAs (Decidable (a.id < b.id))
Equations
- Lean.Meta.Linear.instInhabitedAssignment = { default := { val := default } }
@[inline]
Equations
@[inline]
abbrev
Lean.Meta.Linear.Assignment.get?
(a : Lean.Meta.Linear.Assignment)
(x : Lean.Meta.Linear.Var)
:
Equations
- Lean.Meta.Linear.Assignment.get? a x = if h : x.id < Lean.Meta.Linear.Assignment.size a then some (Array.get a.val { val := x.id, isLt := h }) else none
@[inline]
Equations
- Lean.Meta.Linear.Assignment.push a v = { val := Array.push a.val v }
@[inline]
Equations
- Lean.Meta.Linear.Assignment.shrink a newSize = { val := Array.shrink a.val newSize }
Equations
- Lean.Meta.Linear.instInhabitedPoly = { default := { val := default } }
Equations
- Lean.Meta.Linear.instReprPoly = { reprPrec := [anonymous] }
@[inline]
Equations
- Lean.Meta.Linear.Poly.size e = Array.size e.val
@[inline]
Equations
- Lean.Meta.Linear.Poly.getMaxVarCoeff e = (Array.back e.val).fst
@[inline]
Equations
- Lean.Meta.Linear.Poly.getMaxVar e = (Array.back e.val).snd
@[inline]
abbrev
Lean.Meta.Linear.Poly.get
(e : Lean.Meta.Linear.Poly)
(i : Fin (Lean.Meta.Linear.Poly.size e))
:
Equations
- Lean.Meta.Linear.Poly.get e i = Array.get e.val i
Equations
- Lean.Meta.Linear.Poly.scale d e = { val := Array.map (fun x => match x with | (c, x) => (c * d, x)) e.val }
Equations
- Lean.Meta.Linear.Poly.add e₁ e₂ = Lean.Meta.Linear.Poly.add.go e₁ e₂ 0 0 #[]
def
Lean.Meta.Linear.Poly.add.go
(e₁ : Lean.Meta.Linear.Poly)
(e₂ : Lean.Meta.Linear.Poly)
(i₁ : Nat)
(i₂ : Nat)
(r : Array (Int × Lean.Meta.Linear.Var))
:
Equations
- One or more equations did not get rendered due to their size.
def
Lean.Meta.Linear.Poly.combine
(d₁ : Int)
(e₁ : Lean.Meta.Linear.Poly)
(d₂ : Int)
(e₂ : Lean.Meta.Linear.Poly)
:
Equations
- Lean.Meta.Linear.Poly.combine d₁ e₁ d₂ e₂ = Lean.Meta.Linear.Poly.combine.go d₁ e₁ d₂ e₂ 0 0 #[]
def
Lean.Meta.Linear.Poly.combine.go
(d₁ : Int)
(e₁ : Lean.Meta.Linear.Poly)
(d₂ : Int)
(e₂ : Lean.Meta.Linear.Poly)
(i₁ : Nat)
(i₂ : Nat)
(r : Array (Int × Lean.Meta.Linear.Var))
:
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- Lean.Meta.Linear.instInhabitedAssumptionId = { default := { id := default } }
Equations
- Lean.Meta.Linear.instReprAssumptionId = { reprPrec := [anonymous] }
Equations
- Lean.Meta.Linear.instInhabitedJustification = { default := Lean.Meta.Linear.Justification.assumption default }
Equations
- Lean.Meta.Linear.instBEqJustification = { beq := [anonymous] }
Equations
- Lean.Meta.Linear.instReprJustification = { reprPrec := [anonymous] }
Equations
- Lean.Meta.Linear.instDecidableEqCnstrKind x y = if h : Lean.Meta.Linear.CnstrKind.toCtorIdx x = Lean.Meta.Linear.CnstrKind.toCtorIdx y then isTrue (_ : x = y) else isFalse (_ : x = y → False)
Equations
- Lean.Meta.Linear.instBEqCnstrKind = { beq := [anonymous] }
Equations
- Lean.Meta.Linear.instReprCnstrKind = { reprPrec := [anonymous] }
- kind : Lean.Meta.Linear.CnstrKind
- lhs : Lean.Meta.Linear.Poly
- rhs : Int
Equations
- Lean.Meta.Linear.instInhabitedCnstr = { default := { kind := default, lhs := default, rhs := default, jst := default } }
Equations
- Lean.Meta.Linear.instBEqCnstr = { beq := [anonymous] }
Equations
- Lean.Meta.Linear.instReprCnstr = { reprPrec := [anonymous] }
@[inline]
Equations
- Lean.Meta.Linear.Cnstr.isStrict c = match c.kind with | Lean.Meta.Linear.CnstrKind.lt => true | x => false
def
Lean.Meta.Linear.Cnstr.getBound
(c : Lean.Meta.Linear.Cnstr)
(a : Lean.Meta.Linear.Assignment)
:
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
def
Lean.Meta.Linear.getBestBound?
(cs : Array Lean.Meta.Linear.Cnstr)
(a : Lean.Meta.Linear.Assignment)
(isLower : Bool)
(isInt : Bool)
:
Equations
- One or more equations did not get rendered due to their size.
- unsat: Lean.Meta.Linear.Justification → Lean.Meta.Linear.Result
- unsupported: Lean.Meta.Linear.Result
- timeout: Lean.Meta.Linear.Result
- sat: Lean.Meta.Linear.Assignment → Lean.Meta.Linear.Result
- lowers : Array (Array Lean.Meta.Linear.Cnstr)
- uppers : Array (Array Lean.Meta.Linear.Cnstr)
- assignment : Lean.Meta.Linear.Assignment
Equations
- Lean.Meta.Linear.instInhabitedState = { default := { lowers := default, uppers := default, int := default, assignment := default } }
@[inline]
Equations
- Lean.Meta.Linear.State.getNumVars s = Array.size s.lowers
@[inline]
Equations
- Lean.Meta.Linear.State.currVar s = Lean.Meta.Linear.Assignment.size s.assignment
@[inline]
Equations
- One or more equations did not get rendered due to their size.
@[inline]
Equations
- One or more equations did not get rendered due to their size.
@[inline]
Equations
- Lean.Meta.Linear.State.assignCurr s v = { lowers := s.lowers, uppers := s.uppers, int := s.int, assignment := Lean.Meta.Linear.Assignment.push s.assignment v }
def
Lean.Meta.Linear.resolve
(s : Lean.Meta.Linear.State)
(cl : Lean.Meta.Linear.Cnstr)
(cu : Lean.Meta.Linear.Cnstr)
:
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
- Lean.Meta.Linear.solve 0 s = Lean.Meta.Linear.Result.timeout