Up: Corpus of Examples
Back: Rings
Any definition of a heap and of the dividing line between two heaps is necessarily somewhat arbitrary.
Declaration: stable(OS : set[object]; S : situation) -- Predicate.
Formalism:
stable(OS,S) < = >
[forall(H) dynamic(H) ^ start(H)=S ^
~exists(F : force ; S1 in H, O in OS) external_force(F,O,S1)] =>
exists(H1) start(H1,H) ^ forall(O in OS) motionless(O,H1).
Declaration: restriction(S : situation; OS : set[objects]) : situation --- Function.
Formalism:
restriction(S,OS)=S1 =>
P(OS,objects(S)) ^
[forall(O in OS) value_in(S1,placement(O)) = value_in(S,placement(O)) ^
value_in(S1,velocity(O)) = value_in(S,velocity(O))
Declaration:
support(O2,O1 : object; S : situation) --- Predicate.
direct_support(O2,O1 : object; S : situation) --- Predicate.
Formalism
support(O2,O1,S) < = >
exists(OS1) O1 in OS1 ^ O2 in OS1 ^ stable(OS1,restriction(S,OS1)) ^
~exists(OS2) PP(OS2,OS1) ^ O1 in OS2 ^ stable(OS2,restriction(S,OS2)).
direct_support(O2,O1,S) < = > support(O2,O1,S) ^ holds(S,rcc_EC*(O2,O1)). \noindent
Declaration:
same_heap(O1,O2 : object: S : situation) --- Predicate.
heap(OS: set[object]: S : situation) --- Predicate.
Formalism:
same_heap(O1,O2,S) < = >
[~fixed(O1) ^ ~fixed(O2) ^
[O1=O2 V supports(O1,O2,S) V supports(O2,O1,S)]] V
[exists(O3) same_heap(O1,O3,S) ^ same_heap(O3,O2,S)].
heap(OS,S) < = >
forall(O1,O2 in OS) same_heap(O1,O2,S) ^
forall(O1 in OS ,O2 not in OS) ~same_heap(O1,O2,S).
Characteristics: Statics, set of objects.
Formalism:
[stable(OS,S) ^ O in OS ^ ~fixed(O,S)] =>
exists(OH) heap(OH,S) ^ O in OH.
Characteristics: Statics, probabilistic, set of objects.
Formalism:
ProbS (supports(O1,O2,S) | same_heap(O1,O2,S) ^ holds(S,rcc_EC*(O1,O2)) ^ forall(P) holds(S,P in* O1 intersect* O2) => dot_prod(value(S,out_normal*(O1,P)),up) > 0) ) > 0.9
Characteristics: Statics, probabilistic, set of objects.
Formalism:
ProbOH,S,O1,O2( diameter(O1) < diameter(O2) / 4 | heap(OH,S) ^ O1 in OS ^ O2 in OS ^ O1 != O2 ^ holds(S,middle_heap(O1,OS)) ^ ~exists(OA) support(O1,OA,S) ) > 0.9.
Characteristics: Dynamics, probabilistic, set of objects, external forces.
Formalism:
ProbOS,S( exists(M : momentum) forall(S1,B : impact) [momentum(B) > M ^ strikes(B,OB) ^ OB in OS ^ occurs(B,S,S2)] => exists(O1,O2 in OS) ~same_heap(O1,O2,S1) | heap(OS,S) ^ [forall(O in OS,O1) support(O1,O,S) ^ fixed(O1,S) < = > O1 = OTABLE] ^ [forall(P,O in OS) holds(S,P in* OTABLE intersect O) => [P in upper_surface(OTABLE,S) ^ value(S,out_tangent*(O1,P) = up)] ^ [forall (OX subset OS) ~jammed(OX,S)] [exists(H) kinematic(H) ^ start(H)=S ^ forall(O1,O2 in OS) holds(end(H),DC*(O1,O2))] ) > 0.5
Characteristics: Statics.
Formalism:
support(O1,O2,S) < =>
O1=O2 V direct_support(O1,O2,S) V
exists(O3) support(O1,O3,S) ^ direct_support(O3,O2,S)