Documentation

Blaster.Optimize.Hypotheses

@[inline]

Return true only when the following condition is satisfied:

  • 0 < e := _ ∈ hypothesisContext.hypothesisMap
Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[inline]

    Return true only when the following condition is satisfied:

    • 0 = e := _ ∈ hypothesisContext.hypothesisMap
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      Return true only when one of the following conditions is satisfied:

      • 0 < e := _ ∈ hypothesisContext.hypothesisMap; or
      • ¬ (0 = e) := _ ∈ hypothesisContext.hypothesisMap
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[inline]

        Return true only when the following condition is satisfied:

        • e < 0 := _ ∈ hypothesisContext.hypothesisMap
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[inline]

          Return true only when the following condition is satisfied:

          • 0 < e := _ ∈ hypothesisContext.hypothesisMap
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            Return true only when one of the following conditions is satisfied:

            • 0 < e := _ ∈ hypothesisContext.hypothesisMap; or
            • e < 0 := _ ∈ hypothesisContext.hypothesisMap; or
            • ¬ (0 = e) := _ ∈ hypothesisContext.hypothesisMap
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For

              Return true only when one of the following conditions is satisfied:

              • 0 < e := _ ∈ hypothesisContext.hypothesisMap; or
              • 0 = e := _ ∈ hypothesisContext.hypothesisMap; or
              • ¬ (e < 0) := _ ∈ hypothesisContext.hypothesisMap
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                Return true only when one of the following conditions is satisfied:

                • e < 0 := _ ∈ hypothesisContext.hypothesisMap; or
                • 0 = e := _ ∈ hypothesisContext.hypothesisMap; or
                • ¬ (0 < e) := _ ∈ hypothesisContext.hypothesisMap
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[inline]

                  Perform the following actions: Let hyps := (← get).optEnv.options.hypothesisContext Let hMap := hyps.hypothesisMap

                  • When Type(e) = Prop:
                    • let hMap' := hMap ∪ [ e := h | ¬ ∃ e := h' ∈ hMap ] ∪ [ e₁ := Blaster.and_left e₁ e₂ h | e := e₁ ∧ e₂, ¬ ∃ e₁ := h' ∈ hMap ] ∪ [ e₂ := Blaster.and_right e₁ e₂ h | e := e₁ ∧ e₂, ¬ ∃ e₂ := h' ∈ hMap ]

                    • return (hMap' ≠ hMap, {hypothesisMap := hMap', equalityMap := default}) Otherwise:

                  • return (false, hyps) Note: flag isNotPropBody is set only when a forall body is not of type Prop.
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[inline]
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[inline]

                      Given e and hypothesis map h perform the following:

                      Note that:

                      • a ≤ b is normalized to ¬ (b < a) when Type(a) ∈ [Int, Nat]
                      • 0 = -a is normalized to 0 = a when Type(a) = Int`
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[inline]

                        Perform the following:

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[inline]

                          Perform the following:

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For

                            Perform the following:

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              @[inline]

                              Given e and hypothesis map h perform the following:

                              • When some p := inHypMap (← optimizeNot (¬ e)) h
                                • return some p
                              Equations
                              Instances For