Theory companion

Parents

Contents

Type operators

(none)

Constants

Definitions

B_join_defcompanion_defcompatible_defendo_defendo_lift_defhigher_compat_defhigher_monotonelift_relset_B_defset_T_defset_companion_defset_compatible_def

Theorems

B_greatest_fixpoint_is_companionBf_compatible_fTf_idemcompanion_bot_gfpcompanion_coinductcompanion_expansivecompanion_idemcompanion_monocompatible_B_functional_postfixcompatible_below_companioncompatible_companioncompatible_composecompatible_const_gfpcompatible_idcompatible_selfdoubling_compatible_Bendo_compendo_functionendo_inendo_posetenhanced_gfplift_rel_complub_is_gfpparam_coindparam_coind_doneparam_coind_initparam_coind_upto_fset_companionset_companion_coinductset_companion_compatibleset_compatibleset_compatible_composeset_compatible_enhanceset_compatible_idset_compatible_selfset_gfp_sub_companionset_higher_completeset_param_coindset_param_coind_doneset_param_coind_initset_param_coind_upto_ft_below_Tf

Definitions

⊢ ∀s r b B.
    B_join (s,r) b B ⇔
    function (endo (s,r)) (endo (s,r)) B ∧ monotonic (endo_lift (s,r)) B ∧
    ∀g x.
      lub (s,r) {f x | endo (s,r) f ∧ lift_rel (s,r) (f ∘ b) (b ∘ g)}
        (B g x)
⊢ ∀s r b t.
    companion (s,r) b t ⇔
    function s s t ∧ ∀x. lub (s,r) {f x | compatible (s,r) b f} (t x)
⊢ ∀s r b f.
    compatible (s,r) b f ⇔
    function s s f ∧ monotonic (s,r) f ∧ lift_rel (s,r) (f ∘ b) (b ∘ f)
⊢ ∀s r f.
    endo (s,r) f ⇔
    monotonic (s,r) f ∧ ∀x. if s x then s (f x) else f x = @y. ¬s y
⊢ ∀s r. endo_lift (s,r) = (endo (s,r),lift_rel (s,r))
⊢ ∀fn b.
    higher_compat fn b ⇔
    (∀f. monotone f ⇒ monotone (fn f)) ∧ higher_monotone fn ∧
    ∀f X. monotone f ⇒ fn (set_B b f) X ⊆ set_B b (fn f) X
⊢ ∀fn.
    higher_monotone fn ⇔
    ∀f g. monotone f ∧ monotone g ∧ (∀X. f X ⊆ g X) ⇒ ∀X. fn f X ⊆ fn g X
⊢ ∀s r f g. lift_rel (s,r) f g ⇔ ∀x. s x ⇒ r (f x) (g x)
⊢ ∀b. set_B b = (λg X. BIGUNION {f X | monotone f ∧ ∀Y. f (b Y) ⊆ b (g Y)})
⊢ ∀b. set_T b =
      (λf X. BIGUNION {fn f X | fn | monotone (fn f) ∧ higher_compat fn b})
⊢ ∀b X. set_companion b X = BIGUNION {f X | set_compatible b f}
⊢ ∀b f. set_compatible b f ⇔ monotone f ∧ ∀X. f (b X) ⊆ b (f X)

Theorems

⊢ poset (s,r) ∧ endo (s,r) b ∧ endo (s,r) t ∧ companion (s,r) b t ∧
  B_join (s,r) b B ⇒
  po_gfp (endo_lift (s,r)) B t
⊢ poset (s,r) ∧ endo (s,r) b ∧ endo (s,r) f ∧ B_join (s,r) b B ⇒
  lift_rel (s,r) (B f ∘ b) (b ∘ f)
⊢ poset (s,r) ∧ endo (s,r) b ∧ B_join (s,r) b B ∧ endo (s,r) t ∧
  companion (s,r) b t ∧ companion (endo_lift (s,r)) B T' ∧
  bottom (endo_lift (s,r)) bot ∧ endo (s,r) f ⇒
  T' f ∘ T' f = T' f
⊢ poset (s,r) ∧ monotonic (s,r) b ∧ function s s b ∧ bottom (s,r) bot ∧
  po_gfp (s,r) b gfix ∧ companion (s,r) b t ⇒
  t bot = gfix
⊢ poset (s,r) ∧ monotonic (s,r) b ∧ function s s b ∧ companion (s,r) b t ∧
  po_gfp (s,r) b gfix ∧ s x ∧ r x ((b ∘ t) x) ⇒
  r x gfix
⊢ poset (s,r) ∧ function s s b ∧ monotonic (s,r) b ∧ companion (s,r) b t ∧
  s x ⇒
  r x (t x)
⊢ poset (s,r) ∧ function s s b ∧ monotonic (s,r) b ∧ companion (s,r) b t ∧
  s x ⇒
  t (t x) = t x
⊢ poset (s,r) ∧ function s s b ∧ monotonic (s,r) b ∧ companion (s,r) b t ⇒
  monotonic (s,r) t
⊢ poset (s,r) ∧ endo (s,r) b ∧ B_join (s,r) b B ∧ endo (s,r) f ⇒
  (lift_rel (s,r) f (B f) ⇔ lift_rel (s,r) (f ∘ b) (b ∘ f))
⊢ poset (s,r) ∧ compatible (s,r) b f ∧ companion (s,r) b t ⇒
  lift_rel (s,r) f t
⊢ poset (s,r) ∧ function s s b ∧ monotonic (s,r) b ∧ companion (s,r) b t ⇒
  compatible (s,r) b t
⊢ poset (s,r) ∧ function s s b ∧ monotonic (s,r) b ∧ compatible (s,r) b f ∧
  compatible (s,r) b g ⇒
  compatible (s,r) b (f ∘ g)
⊢ poset (s,r) ∧ function s s b ∧ monotonic (s,r) b ∧ po_gfp (s,r) b fp ⇒
  compatible (s,r) b (K fp)
⊢ poset (s,r) ∧ function s s b ∧ monotonic (s,r) b ⇒ compatible (s,r) b I
⊢ poset (s,r) ∧ function s s b ∧ monotonic (s,r) b ⇒ compatible (s,r) b b
⊢ poset (s,r) ∧ endo (s,r) b ∧ B_join (s,r) b B ⇒
  compatible (endo_lift (s,r)) B (λf. f ∘ f)
⊢ endo (s,r) f ∧ endo (s,r) g ⇒ endo (s,r) (f ∘ g)
⊢ endo (s,r) f ⇒ function s s f
⊢ endo (s,r) t ∧ s x ⇒ s (t x)
⊢ poset (s,r) ⇒ poset (endo_lift (s,r))
⊢ poset (s,r) ∧ monotonic (s,r) b ∧ function s s b ∧ po_gfp (s,r) b gfix ∧
  companion (s,r) b t ∧ po_gfp (s,r) (b ∘ t) efix ⇒
  efix = gfix
⊢ poset (s,r) ∧ function s s g ∧ function s s f ∧ function s s f' ∧
  function s s g' ∧ monotonic (s,r) f ∧ monotonic (s,r) f' ∧
  lift_rel (s,r) f f' ∧ lift_rel (s,r) g g' ⇒
  lift_rel (s,r) (f ∘ g) (f' ∘ g')
⊢ poset (s,r) ∧ function s s f ∧ monotonic (s,r) f ∧
  lub (s,r) {x | r x (f x)} l ⇒
  po_gfp (s,r) f l
⊢ complete (s,r) ∧ complete (endo_lift (s,r)) ∧ poset (s,r) ∧
  endo (s,r) b ∧ companion (s,r) b t ∧ endo (s,r) t ∧ B_join (s,r) b B ∧
  companion (endo_lift (s,r)) B T' ∧ po_gfp (s,r) b gfix ∧ s x ∧ s y ∧
  lub (s,r) {x; y} xy ⇒
  r y (b (t xy)) ⇒
  r y (t x)
⊢ poset (s,r) ∧ monotonic (s,r) b ∧ function s s b ∧ companion (s,r) b t ⇒
  s x ∧ s y ∧ r y x ⇒
  r y (t x)
⊢ poset (s,r) ∧ monotonic (s,r) b ∧ function s s b ∧ bottom (s,r) bot ∧
  po_gfp (s,r) b gfix ∧ companion (s,r) b t ⇒
  r x (t bot) ⇒
  r x gfix
⊢ poset (s,r) ∧ monotonic (s,r) b ∧ function s s b ∧ companion (s,r) b t ⇒
  function s s f ∧ (∀x. r (f x) (t x)) ⇒
  s x ∧ s y ∧ r y (f (t x)) ⇒
  r y (t x)
⊢ companion (𝕌(:α -> bool),$SUBSET) b (set_companion b)
⊢ monotone b ∧ X ⊆ (b ∘ set_companion b) X ⇒ X ⊆ gfp b
⊢ monotone b ⇒ set_compatible b (set_companion b)
⊢ set_compatible b f ⇒ compatible (𝕌(:α -> bool),$SUBSET) b f
⊢ monotone b ⇒
  set_compatible b f ∧ set_compatible b g ⇒
  set_compatible b (f ∘ g)
⊢ monotone b ∧ set_compatible b f ∧ Y ⊆ f X ⇒ Y ⊆ set_companion b X
⊢ monotone b ⇒ set_compatible b I
⊢ monotone b ⇒ set_compatible b b
⊢ monotone b ⇒ gfp b ⊆ set_companion b x
⊢ complete (endo_lift (𝕌(:α -> bool),$SUBSET))
⊢ monotone b ⇒ Y ⊆ b (set_companion b (X ∪ Y)) ⇒ Y ⊆ set_companion b X
⊢ monotone b ∧ Y ⊆ X ⇒ Y ⊆ set_companion b X
⊢ monotone b ∧ X ⊆ set_companion b ∅ ⇒ X ⊆ gfp b
⊢ monotone b ∧ (∀X. f X ⊆ set_companion b X) ∧ Y ⊆ f (set_companion b X) ⇒
  Y ⊆ set_companion b X
⊢ poset (s,r) ∧ endo (s,r) b ∧ endo (s,r) t ∧ companion (s,r) b t ∧
  B_join (s,r) b B ∧ bottom (endo_lift (s,r)) bot ∧
  companion (endo_lift (s,r)) B T' ∧ endo (s,r) f ⇒
  lift_rel (s,r) t (T' f)