Built with
doc-gen4 , running Lean4.
Bubbles (
) indicate interactive fragments: hover for details, tap to reveal contents.
Use
Ctrl+↑ Ctrl+↓ to navigate,
Ctrl+🖱️ to focus.
On Mac, use
Cmd instead of
Ctrl .
import Pretty.Defs.Basic
import Pretty.Supports.MergeBasic
/-!
### Various measure set operations (Figure 12)
-/
/--
- lift;
-/
def MeasureSet.lift : {α : Type } → (Meas → Meas ) → MeasureSet → MeasureSet MeasureSet.lift ( f : @ Meas α → @ Meas α ) : @ MeasureSet α → @ MeasureSet α
| MeasureSet.tainted : {α : Type } → Meas → MeasureSet MeasureSet.tainted m => MeasureSet.tainted : {α : Type } → Meas → MeasureSet MeasureSet.tainted ( f m )
| MeasureSet.set : {α : Type } → (ms : List Meas ) → ms ≠ [] → MeasureSet MeasureSet.set ms h => MeasureSet.set : {α : Type } → (ms : List Meas ) → ms ≠ [] → MeasureSet MeasureSet.set ( ms . map f ) ( by simp [ h ] )
/--
- taint; and
-/
def MeasureSet.taint : {α : Type } → MeasureSet → MeasureSet MeasureSet.taint : @ MeasureSet α → @ MeasureSet α
| MeasureSet.tainted : {α : Type } → Meas → MeasureSet MeasureSet.tainted m => MeasureSet.tainted : {α : Type } → Meas → MeasureSet MeasureSet.tainted m
| MeasureSet.set : {α : Type } → (ms : List Meas ) → ms ≠ [] → MeasureSet MeasureSet.set ms h => MeasureSet.tainted : {α : Type } → Meas → MeasureSet MeasureSet.tainted ( ms . head : {α : Type ?u.606} → (as : List α ) → as ≠ [] → α head h )
/--
- union (⊎)
-/
def MeasureSet.union : {α : Type } → Factory α → MeasureSet → MeasureSet → MeasureSet MeasureSet.union ( F : Factory α ) : @ MeasureSet α → @ MeasureSet α → @ MeasureSet α
| s , MeasureSet.tainted : {α : Type } → Meas → MeasureSet MeasureSet.tainted _ => s
| MeasureSet.tainted : {α : Type } → Meas → MeasureSet MeasureSet.tainted _, MeasureSet.set : {α : Type } → (ms : List Meas ) → ms ≠ [] → MeasureSet MeasureSet.set ms h => MeasureSet.set : {α : Type } → (ms : List Meas ) → ms ≠ [] → MeasureSet MeasureSet.set ms h
| MeasureSet.set : {α : Type } → (ms : List Meas ) → ms ≠ [] → MeasureSet MeasureSet.set ms₁ h₁ , MeasureSet.set : {α : Type } → (ms : List Meas ) → ms ≠ [] → MeasureSet MeasureSet.set ms₂ _ =>
MeasureSet.set : {α : Type } → (ms : List Meas ) → ms ≠ [] → MeasureSet MeasureSet.set ( merge F ⟨ ms₁ , ms₂ ⟩) ( by {
apply merge_not_empty
simp [ h₁ ]
} )