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))
Equations
- Lean.Meta.Linear.instInhabitedAssignment = { default := { val := default } }
@[reducible, inline]
abbrev
Lean.Meta.Linear.Assignment.get?
(a : Lean.Meta.Linear.Assignment)
(x : Lean.Meta.Linear.Var)
:
Instances For
@[reducible, inline]
Equations
- a.push v = { val := a.val.push v }
Instances For
@[reducible, inline]
Equations
- a.take newSize = { val := a.val.take newSize }
Instances For
Equations
- Lean.Meta.Linear.instInhabitedPoly = { default := { val := default } }
Equations
- Lean.Meta.Linear.instReprPoly = { reprPrec := Lean.Meta.Linear.reprPoly✝ }
@[reducible, inline]
Equations
- e.get i = e.val.get i
Instances For
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 }
Instances For
Equations
- e₁.add e₂ = Lean.Meta.Linear.Poly.add.go e₁ e₂ 0 0 #[]
Instances For
@[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.
Instances For
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 #[]
Instances For
@[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.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Meta.Linear.instInhabitedAssumptionId = { default := { id := default } }
Equations
- Lean.Meta.Linear.instReprAssumptionId = { reprPrec := Lean.Meta.Linear.reprAssumptionId✝ }
- combine: Int → Lean.Meta.Linear.Justification → Int → Lean.Meta.Linear.Justification → Lean.Meta.Linear.Justification
- assumption: Lean.Meta.Linear.AssumptionId → Lean.Meta.Linear.Justification
Instances For
Equations
- Lean.Meta.Linear.instInhabitedJustification = { default := Lean.Meta.Linear.Justification.assumption default }
Equations
- eq: Lean.Meta.Linear.CnstrKind
- div: Lean.Meta.Linear.CnstrKind
- lt: Lean.Meta.Linear.CnstrKind
- le: Lean.Meta.Linear.CnstrKind
Instances For
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✝ }
- kind : Lean.Meta.Linear.CnstrKind
- lhs : Lean.Meta.Linear.Poly
- rhs : Int
Instances For
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
Instances For
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.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
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.
Instances For
- 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
Instances For
- 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.getBestLowerBound? = Lean.Meta.Linear.getBestBound? s.lowers[s.currVar]! s.assignment true s.int[s.currVar]!
Instances For
@[reducible, inline]
Equations
- s.getBestUpperBound? = Lean.Meta.Linear.getBestBound? s.uppers[s.currVar]! s.assignment false s.int[s.currVar]!
Instances For
@[reducible, inline]
Equations
- s.assignCurr v = { lowers := s.lowers, uppers := s.uppers, int := s.int, assignment := s.assignment.push v }
Instances For
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.
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Lean.Meta.Linear.solve 0 s = Lean.Meta.Linear.Result.timeout