Documentation

Lean.Meta.Tactic.Grind.Arith.Util

Returns true if e is a numeral and has type Nat.

Instances For

    Returns true if e is a nonnegative numeral and has type Int.

    Instances For

      Returns true if e is a numeral and has type Int.

      Instances For

        Returns true if e is a numeral supported by cutsat.

        Instances For

          Returns true if e is of the form Nat

          Instances For

            Returns true if e is of the form Int

            Instances For

              Returns true if e is of the form @instHAdd Nat instAddNat

              Instances For

                Returns true if e is instLENat

                Instances For

                  Returns some (a, b) if e is of the form

                  @HAdd.hAdd Nat Nat Nat (instHAdd Nat instAddNat) a b
                  
                  Instances For

                    Returns true if e is of the form

                    @HAdd.hAdd Nat Nat Nat (instHAdd Nat instAddNat) _ _
                    
                    Instances For

                      Returns some k if e @OfNat.ofNat Nat _ (instOfNatNat k)

                      Instances For

                        Quote e using and if e is an arithmetic term that is being treated as a variable.

                        Instances For

                          gcdExt a b returns the triple (g, α, β) such that

                          • g = gcd a b (with g ≥ 0), and
                          • g = α * a + β * b.

                          Helper monad for collecting decision variables in linarith and cutsat

                          @[reducible, inline]
                          Instances For

                            Return auxiliary expression used as "virtual" parent when internalizing auxiliary expressions created by toIntModuleExpr. The function toIntModuleExpr converts a CommRing polynomial into a IntModule expression. We don't want this auxiliary expression to be internalized by the CommRing module since it uses a nonstandard encoding with @HSMul.hSMul Int α α, a virtual One.one constant, etc.

                            Instances For
                              @[specialize #[]]
                              def Lean.Meta.Grind.Arith.split {α : Type u_1} (cs : PArray α) (getCoeff : αInt) :
                              PArray α × Array (Int × α)
                              Instances For