Specification
Behavior
structure Behavior.{u_1, u_2} (L : FirstOrder.Language) (M : Type) [L.Structure M] (Input Output : Type) : Type
relation : Option M → Option Input → Option M → Option Output → Prop
Show details
Outer dependencies: (none)
Mathlib dependencies: FirstOrder.Language, FirstOrder.Language.Structure
Used by: Class, Creation, Destruction, Internal, NormalBehavior, Object, doorBehavior
NormalBehavior
structure NormalBehavior.{u_1, u_2} (L : FirstOrder.Language) (M : Type) [L.Structure M] (Input Output : Type) : Type
(inherited from
Behavior)relation : Option M → Option Input → Option M → Option Output → Prop
all_present : ∀ (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
Show details
Outer dependencies: (none)
Inner dependencies: Behavior
Mathlib dependencies: FirstOrder.Language, FirstOrder.Language.Structure
Used by: (none)
Creation
structure Creation.{u_1, u_2} (L : FirstOrder.Language) (M : Type) [L.Structure M] (Input Output : Type) : Type
(inherited from
Behavior)relation : Option M → Option Input → Option M → Option Output → Prop
no_initial : ∀ (pre : Option M) (i : Option Input) (post : Option M) (o : Option Output), Behavior.relation L pre i post o → pre = none
Show details
Outer dependencies: (none)
Inner dependencies: Behavior
Mathlib dependencies: FirstOrder.Language, FirstOrder.Language.Structure
Used by: (none)
Destruction
structure Destruction.{u_1, u_2} (L : FirstOrder.Language) (M : Type) [L.Structure M] (Input Output : Type) : Type
(inherited from
Behavior)relation : Option M → Option Input → Option M → Option Output → Prop
no_final : ∀ (pre : Option M) (i : Option Input) (post : Option M) (o : Option Output), Behavior.relation L pre i post o → post = none
Show details
Outer dependencies: (none)
Inner dependencies: Behavior
Mathlib dependencies: FirstOrder.Language, FirstOrder.Language.Structure
Used by: (none)
Internal
structure Internal.{u_1, u_2} (L : FirstOrder.Language) (M : Type) [L.Structure M] (Input Output : Type) : Type
(inherited from
Behavior)relation : Option M → Option Input → Option M → Option Output → Prop
no_io : ∀ (pre : Option M) (i : Option Input) (post : Option M) (o : Option Output), Behavior.relation L pre i post o → i = none ∧ o = none
Show details
Outer dependencies: (none)
Inner dependencies: Behavior
Mathlib dependencies: FirstOrder.Language, FirstOrder.Language.Structure
Used by: (none)
Interface
structure Interface (M : Type) : Type 1
Method : Type
input : self.Method → Set M
output : self.Method → Set M
Interface.combine
def Interface.combine {M : Type} (I1 I2 : Interface M) : Interface M
Class
structure Class.{u_1, u_2} (M : Type) (L : FirstOrder.Language) [L.Structure M] (I : Interface M) : Type
State : Set M
operation : (m : I.Method) → Behavior L M ↑(I.input m) ↑(I.output m)
autonomous : ↑self.State → ↑self.State → Prop
Show details
Outer dependencies: Interface
Inner dependencies: Behavior
Mathlib dependencies: FirstOrder.Language, FirstOrder.Language.Structure, Set, Set.Elem
Class.Reactive
def 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
| C.Reactive = ∀ (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
def 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
| C.Passive = (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
def 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
| C.Active = ∃ 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
theorem 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
def 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
| C.reachable 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.