Documentation

Blaster.Optimize.Rewriting.OptimizeProjection

Given a projection a.i apply the following normalization rules:

  • When projectCore? a i := some re
    • return some re
  • Otherwise
    • When a := Blaster.dite' c (fun h : c => t₁) (fun h : ¬ c => t₂)
      • return some Blaster.dite' c (fun h : c => t₁.i ) (fun h : ¬ c => t₂.i)
    • when a := match₁ e₁, ..., eₙ with | p₍₁₎₍₁₎, ..., p₍₁₎₍ₙ₎ => t₁ ... | p₍ₘ₎₍₁₎, ..., p₍ₘ₎₍ₙ₎ => tₘ
      • return some match₁ e₁, ..., eₙ with | p₍₁₎₍₁₎, ..., p₍₁₎₍ₙ₎ => t₁.i ... | p₍ₘ₎₍₁₎, ..., p₍ₘ₎₍ₙ₎ => tₘ.i
Equations
  • One or more equations did not get rendered due to their size.
Instances For
    Equations
    Instances For
      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
          • One or more equations did not get rendered due to their size.
          Instances For