Equations
- Lean.Meta.Linear.instInhabitedVar = { default := { id := default } }
Equations
- Lean.Meta.Linear.instOrdVar = { compare := Lean.Meta.Linear.ordVar✝ }
Equations
- Lean.Meta.Linear.instReprVar = { reprPrec := Lean.Meta.Linear.reprVar✝ }
Equations
- Lean.Meta.Linear.instLTVar = { lt := fun (a b : Lean.Meta.Linear.Var) => a.id < b.id }
instance
Lean.Meta.Linear.instDecidableLtVar
(a : Lean.Meta.Linear.Var)
(b : Lean.Meta.Linear.Var)
:
Equations
- Lean.Meta.Linear.instDecidableLtVar a b = inferInstanceAs (Decidable (a.id < b.id))
Instances For
Equations
- Lean.Meta.Linear.instInhabitedAssignment = { default := { val := default } }
@[reducible, inline]
Equations
- a.size = a.val.size
@[reducible, inline]
abbrev
Lean.Meta.Linear.Assignment.get?
(a : Lean.Meta.Linear.Assignment)
(x : Lean.Meta.Linear.Var)
:
@[reducible, inline]
Equations
- a.push v = { val := a.val.push v }
@[reducible, inline]
Equations
- a.shrink newSize = { val := a.val.shrink newSize }
- val : Array (Int × Lean.Meta.Linear.Var)
Equations
- Lean.Meta.Linear.instInhabitedPoly = { default := { val := default } }
Equations
- Lean.Meta.Linear.instReprPoly = { reprPrec := Lean.Meta.Linear.reprPoly✝ }
@[reducible, inline]
Equations
- e.size = e.val.size
@[reducible, inline]
Equations
- e.getMaxVarCoeff = e.val.back.fst
@[reducible, inline]
Equations
- e.getMaxVar = e.val.back.snd
@[reducible, inline]
Equations
- e.get i = e.val.get i
Equations
- Lean.Meta.Linear.Poly.scale d e = { val := Array.map (fun (x : Int × Lean.Meta.Linear.Var) => match x with | (c, x) => (c * d, x)) e.val }
Equations
- e₁.add e₂ = Lean.Meta.Linear.Poly.add.go e₁ e₂ 0 0 #[]
@[irreducible]
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 #[]
@[irreducible]
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 := Lean.Meta.Linear.reprAssumptionId✝ }
Equations
- Lean.Meta.Linear.instInhabitedJustification = { default := Lean.Meta.Linear.Justification.assumption default }
Equations
Equations
Equations
- Lean.Meta.Linear.instDecidableEqCnstrKind x y = if h : x.toCtorIdx = y.toCtorIdx then isTrue ⋯ else isFalse ⋯
Equations
Equations
- Lean.Meta.Linear.instReprCnstrKind = { reprPrec := Lean.Meta.Linear.reprCnstrKind✝ }
Equations
- Lean.Meta.Linear.instInhabitedCnstr = { default := { kind := default, lhs := default, rhs := default, jst := default } }
Equations
Equations
- Lean.Meta.Linear.instReprCnstr = { reprPrec := Lean.Meta.Linear.reprCnstr✝ }
@[reducible, inline]
Equations
- c.isStrict = 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
Instances For
Equations
- Lean.Meta.Linear.instInhabitedState = { default := { lowers := default, uppers := default, int := default, assignment := default } }
@[reducible, inline]
Equations
- s.getNumVars = s.lowers.size
@[reducible, inline]
Equations
- s.currVar = s.assignment.size
@[reducible, inline]
Equations
- s.getBestLowerBound? = Lean.Meta.Linear.getBestBound? s.lowers[s.currVar]! s.assignment true s.int[s.currVar]!
@[reducible, inline]
Equations
- s.getBestUpperBound? = Lean.Meta.Linear.getBestBound? s.uppers[s.currVar]! s.assignment false s.int[s.currVar]!
@[reducible, inline]
Equations
- s.assignCurr v = { lowers := s.lowers, uppers := s.uppers, int := s.int, assignment := s.assignment.push 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