Specification
Behavior
Behavior.{u_1, u_2} (L : FirstOrder.Language) (M : Type) [L.Structure M] (Input Output : Type) : Type
Show details
| Behavior.mk : {L : FirstOrder.Language} → {M : Type} → [inst : L.Structure M] → {Input Output : Type} → (Option M → Option Input → Option M → Option Output → Prop) → Behavior L M Input Output
Outer dependencies: (none)
Mathlib dependencies: FirstOrder.Language, FirstOrder.Language.Structure
Used by: Class, Creation, Destruction, Internal, NormalBehavior, Object, doorBehavior
NormalBehavior
NormalBehavior.{u_1, u_2} (L : FirstOrder.Language) (M : Type) [L.Structure M] (Input Output : Type) : Type
Show details
| NormalBehavior.mk : {L : FirstOrder.Language} → {M : Type} → [inst : L.Structure M] → {Input Output : Type} → [toBehavior : Behavior L M Input Output] → (∀ (pre : Option M) (i : Option Input) (post : Option M) (o : Option Output), Behavior.relation L pre i post o → pre.isSome = true ∧ i.isSome = true ∧ post.isSome = true ∧ o.isSome = true) → NormalBehavior L M Input Output
Outer dependencies: (none)
Inner dependencies: Behavior
Mathlib dependencies: FirstOrder.Language, FirstOrder.Language.Structure
Used by: (none)
Creation
Creation.{u_1, u_2} (L : FirstOrder.Language) (M : Type) [L.Structure M] (Input Output : Type) : Type
Show details
| Creation.mk : {L : FirstOrder.Language} → {M : Type} → [inst : L.Structure M] → {Input Output : Type} → [toBehavior : Behavior L M Input Output] → (∀ (pre : Option M) (i : Option Input) (post : Option M) (o : Option Output), Behavior.relation L pre i post o → pre = none) → Creation L M Input Output
Outer dependencies: (none)
Inner dependencies: Behavior
Mathlib dependencies: FirstOrder.Language, FirstOrder.Language.Structure
Used by: (none)
Destruction
Destruction.{u_1, u_2} (L : FirstOrder.Language) (M : Type) [L.Structure M] (Input Output : Type) : Type
Show details
| Destruction.mk : {L : FirstOrder.Language} → {M : Type} → [inst : L.Structure M] → {Input Output : Type} → [toBehavior : Behavior L M Input Output] → (∀ (pre : Option M) (i : Option Input) (post : Option M) (o : Option Output), Behavior.relation L pre i post o → post = none) → Destruction L M Input Output
Outer dependencies: (none)
Inner dependencies: Behavior
Mathlib dependencies: FirstOrder.Language, FirstOrder.Language.Structure
Used by: (none)
Internal
Internal.{u_1, u_2} (L : FirstOrder.Language) (M : Type) [L.Structure M] (Input Output : Type) : Type
Show details
| Internal.mk : {L : FirstOrder.Language} → {M : Type} → [inst : L.Structure M] → {Input Output : Type} → [toBehavior : Behavior L M Input Output] → (∀ (pre : Option M) (i : Option Input) (post : Option M) (o : Option Output), Behavior.relation L pre i post o → i = none ∧ o = none) → Internal L M Input Output
Outer dependencies: (none)
Inner dependencies: Behavior
Mathlib dependencies: FirstOrder.Language, FirstOrder.Language.Structure
Used by: (none)
Interface
Interface (M : Type) : Type 1
Show details
| Interface.mk : {M : Type} → (Method : Type) → (Method → Set M) → (Method → Set M) → Interface M
Outer dependencies: (none)
Mathlib dependencies: Set
Interface.combine
Interface.combine {M : Type} (I1 I2 : Interface M) : Interface M
Class
Class.{u_1, u_2} (M : Type) (L : FirstOrder.Language) [L.Structure M] (I : Interface M) : Type
Show details
| Class.mk : {M : Type} → {L : FirstOrder.Language} → [inst : L.Structure M] → {I : Interface M} → (State : Set M) → ((m : I.Method) → Behavior L M ↑(I.input m) ↑(I.output m)) → (↑State → ↑State → Prop) → Class M L I
Outer dependencies: Interface
Inner dependencies: Behavior
Mathlib dependencies: FirstOrder.Language, FirstOrder.Language.Structure, Set, Set.Elem
Class.Reactive
Class.Reactive.{u_1, u_2} {M : Type} {L : FirstOrder.Language} [L.Structure M] {I : Interface M} (C : Class M L I) : Prop
Show details
fun {M} {L} [L.Structure M] {I} C => ∀ (s s' : ↑C.State), ¬C.autonomous s s'
Complexity: 73 (size of the value term)
Mathlib dependencies: FirstOrder.Language, FirstOrder.Language.Structure, Set.Elem
Lean core dependencies: Not
Used by: Class.Passive, Class.not_reactive_and_active
Class.Passive
Class.Passive.{u_1, u_2} {M : Type} {L : FirstOrder.Language} [L.Structure M] {I : Interface M} (C : Class M L I) : Prop
Show details
fun {M} {L} [L.Structure M] {I} C => C.Reactive ∧ ∀ (m : I.Method) (s s' : ↑C.State) (i : ↑(I.input m)) (o : ↑(I.output m)), Behavior.relation L (some ↑s) (some i) (some ↑s') (some o) → s = s'
Complexity: 275 (size of the value term)
Inner dependencies: Class.Reactive
Mathlib dependencies: FirstOrder.Language, FirstOrder.Language.Structure, Set, Set.Elem
Used by: (none)
Class.Active
Class.Active.{u_1, u_2} {M : Type} {L : FirstOrder.Language} [L.Structure M] {I : Interface M} (C : Class M L I) : Prop
Show details
fun {M} {L} [L.Structure M] {I} C => ∃ s s', C.autonomous s s'
Complexity: 107 (size of the value term)
Mathlib dependencies: FirstOrder.Language, FirstOrder.Language.Structure, Set.Elem
Lean core dependencies: Exists
Used by: Class.not_reactive_and_active
Class.not_reactive_and_active
Class.not_reactive_and_active.{u_1, u_2} {M : Type} {L : FirstOrder.Language} [L.Structure M] {I : Interface M} (C : Class M L I) (h1 : C.Reactive) (h2 : C.Active) : False
Show details
fun {M} {L} [L.Structure M] {I} C h1 h2 => match h2 with | Exists.intro s (Exists.intro s' ha) => h1 s s' ha
Complexity: 131 (size of the value term)
Dependencies: Class, Class.Active, Class.Reactive, Interface
Mathlib dependencies: FirstOrder.Language, FirstOrder.Language.Structure, Set.Elem
Used by: (none)
Class.reachable
Class.reachable.{u_1, u_2} {M : Type} {L : FirstOrder.Language} [L.Structure M] {I : Interface M} (C : Class M L I) (s s' : ↑C.State) : Prop
Show details
fun {M} {L} [L.Structure M] {I} C s s' => C.autonomous s s' ∨ ∃ m i o, Behavior.relation L (some ↑s) i (some ↑s') o
Complexity: 273 (size of the value term)
Mathlib dependencies: FirstOrder.Language, FirstOrder.Language.Structure, Set, Set.Elem
Used by: (none)
Dependency diagram
Drag to pan, Ctrl+scroll (or Cmd+scroll, or pinch on a touch screen) to zoom, click a node to jump to it.