1:-include(library('ec_planner/ec_test_incl')). 2:-expects_dialect(pfc). 3 % loading(always,'ecnet/Baseball.e').
4%;
5%; Copyright (c) 2005 IBM Corporation and others.
6%; All rights reserved. This program and the accompanying materials
7%; are made available under the terms of the Common Public License v1.0
8%; which accompanies this distribution, and is available at
9%; http://www.eclipse.org/legal/cpl-v10.html
10%;
11%; Contributors:
12%; IBM - Initial implementation
13%;
14%; @book{EthanAllen:1982,
15%; author = "Ethan Allen",
16%; year = "1982",
17%; title = "Baseball Play and Strategy",
18%; address = "Robert E. Krieger",
19%; publisher = "Malabar, FL",
20%; edition = "Third",
21%; }
22%;
23%; @book{Coombs:1967,
24%; author = "Jack Coombs",
25%; year = "1967",
26%; title = "Baseball",
27%; address = "Englewood Cliffs, NJ",
28%; publisher = "Prentice-Hall",
29%; edition = "4th",
30%; howpublished = "revised by Danny Litwhiler",
31%; }
32%;
33
34% sort ballgame
35==> sort(ballgame).
36
37% sort hardball: ball
38==> subsort(hardball,ball).
39
40% sort base: physobj
41==> subsort(base,physobj).
42
43% sort firstbase: base
44==> subsort(firstbase,base).
45%;sort secondbase: base
46%;sort thirdbase: base
47
48% sort homeplate: base
49==> subsort(homeplate,base).
50
51% sort mound: physobj
52==> subsort(mound,physobj).
53
54% sort pitchermound: mound
55==> subsort(pitchermound,mound).
56%;sort furniture: physobj
57%;sort bench: furniture
58%;sort playerbench: bench
59
60% sort field: physobj
61==> subsort(field,physobj).
62%;sort shortstoparea: field
63%;sort catcherarea: field
64
65% sort outfield: field
66==> subsort(outfield,field).
67%;sort leftfield: outfield
68%;sort centerfield: outfield
69%;sort rightfield: outfield
70
71% function BallOf(ballgame): hardball
72 % functional_predicate(ballOf(ballgame,hardball)).
73==> mpred_prop(ballOf(ballgame,hardball),functional_predicate).
74==> meta_argtypes(ballOf(ballgame,hardball)).
75resultIsa(ballOf,hardball).
76
77% function FirstBaseOf(ballgame): firstbase
78 % functional_predicate(firstBaseOf(ballgame,firstbase)).
79==> mpred_prop(firstBaseOf(ballgame,firstbase),functional_predicate).
80==> meta_argtypes(firstBaseOf(ballgame,firstbase)).
81resultIsa(firstBaseOf,firstbase).
82%;function SecondBaseOf(ballgame): secondbase
83%;function ThirdBaseOf(ballgame): thirdbase
84
85% function HomeplateOf(ballgame): homeplate
86 % functional_predicate(homeplateOf(ballgame,homeplate)).
87==> mpred_prop(homeplateOf(ballgame,homeplate),functional_predicate).
88==> meta_argtypes(homeplateOf(ballgame,homeplate)).
89resultIsa(homeplateOf,homeplate).
90
91% function OutfieldOf(ballgame): outfield
92 % functional_predicate(outfieldOf(ballgame,outfield)).
93==> mpred_prop(outfieldOf(ballgame,outfield),functional_predicate).
94==> meta_argtypes(outfieldOf(ballgame,outfield)).
95resultIsa(outfieldOf,outfield).
96
97% function PitchermoundOf(ballgame): pitchermound
98 % functional_predicate(pitchermoundOf(ballgame,pitchermound)).
99==> mpred_prop(pitchermoundOf(ballgame,pitchermound),
100 functional_predicate).
101==> meta_argtypes(pitchermoundOf(ballgame,pitchermound)).
102resultIsa(pitchermoundOf,pitchermound).
103
104% function PlayerbenchOf(ballgame): playerbench
105 % functional_predicate(playerbenchOf(ballgame,playerbench)).
106==> mpred_prop(playerbenchOf(ballgame,playerbench),
107 functional_predicate).
108==> meta_argtypes(playerbenchOf(ballgame,playerbench)).
109resultIsa(playerbenchOf,playerbench).
110
111% predicate HomeTeamPlayer(ballgame,agent)
112 % predicate(homeTeamPlayer(ballgame,agent)).
113==> mpred_prop(homeTeamPlayer(ballgame,agent),predicate).
114==> meta_argtypes(homeTeamPlayer(ballgame,agent)).
115
116% predicate VisitingTeamPlayer(ballgame,agent)
117 % predicate(visitingTeamPlayer(ballgame,agent)).
118==> mpred_prop(visitingTeamPlayer(ballgame,agent),predicate).
119==> meta_argtypes(visitingTeamPlayer(ballgame,agent)).
120
121% predicate Player(ballgame,agent)
122 % predicate(player(ballgame,agent)).
123==> mpred_prop(player(ballgame,agent),predicate).
124==> meta_argtypes(player(ballgame,agent)).
125
126% predicate OnOppositeTeams(ballgame,agent,agent)
127 % predicate(onOppositeTeams(ballgame,agent,agent)).
128==> mpred_prop(onOppositeTeams(ballgame,agent,agent),predicate).
129==> meta_argtypes(onOppositeTeams(ballgame,agent,agent)).
130
131% event Pitch(ballgame,agent,hardball,agent)
132 % event(pitch(ballgame,agent,hardball,agent)).
133==> mpred_prop(pitch(ballgame,agent,hardball,agent),event).
134==> meta_argtypes(pitch(ballgame,agent,hardball,agent)).
135
136% event PitchInStrikeZone(ballgame,agent,hardball,agent)
137 % event(pitchInStrikeZone(ballgame,agent,hardball,agent)).
138==> mpred_prop(pitchInStrikeZone(ballgame,agent,hardball,agent),event).
139==> meta_argtypes(pitchInStrikeZone(ballgame,agent,hardball,agent)).
140
141% event PitchOutOfStrikeZone(ballgame,agent,hardball,agent)
142 % event(pitchOutOfStrikeZone(ballgame,agent,hardball,agent)).
143==> mpred_prop(pitchOutOfStrikeZone(ballgame,agent,hardball,agent),
144 event).
145==> meta_argtypes(pitchOutOfStrikeZone(ballgame,agent,hardball,agent)).
146
147% event Swing(ballgame,agent,hardball)
148 % event(swing(ballgame,agent,hardball)).
149==> mpred_prop(swing(ballgame,agent,hardball),event).
150==> meta_argtypes(swing(ballgame,agent,hardball)).
151
152% event SwingMiss(ballgame,agent,hardball)
153 % event(swingMiss(ballgame,agent,hardball)).
154==> mpred_prop(swingMiss(ballgame,agent,hardball),event).
155==> meta_argtypes(swingMiss(ballgame,agent,hardball)).
156
157% event SwingHit(ballgame,agent,hardball)
158 % event(swingHit(ballgame,agent,hardball)).
159==> mpred_prop(swingHit(ballgame,agent,hardball),event).
160==> meta_argtypes(swingHit(ballgame,agent,hardball)).
161
162% event SwingHitFair(ballgame,agent,hardball)
163 % event(swingHitFair(ballgame,agent,hardball)).
164==> mpred_prop(swingHitFair(ballgame,agent,hardball),event).
165==> meta_argtypes(swingHitFair(ballgame,agent,hardball)).
166
167% event SwingHitFoul(ballgame,agent,hardball)
168 % event(swingHitFoul(ballgame,agent,hardball)).
169==> mpred_prop(swingHitFoul(ballgame,agent,hardball),event).
170==> meta_argtypes(swingHitFoul(ballgame,agent,hardball)).
171
172% event SwingHitFairFly(ballgame,agent,hardball)
173 % event(swingHitFairFly(ballgame,agent,hardball)).
174==> mpred_prop(swingHitFairFly(ballgame,agent,hardball),event).
175==> meta_argtypes(swingHitFairFly(ballgame,agent,hardball)).
176
177% event SwingHitFairGround(ballgame,agent,hardball)
178 % event(swingHitFairGround(ballgame,agent,hardball)).
179==> mpred_prop(swingHitFairGround(ballgame,agent,hardball),event).
180==> meta_argtypes(swingHitFairGround(ballgame,agent,hardball)).
181
182
188axiom(not(visitingTeamPlayer(Ballgame, Agent)),
189 [homeTeamPlayer(Ballgame, Agent)]).
190
191
194 195axiom(player(Ballgame, Agent),
196 [homeTeamPlayer(Ballgame, Agent)]).
197
198
201 202axiom(player(Ballgame, Agent),
203 [visitingTeamPlayer(Ballgame, Agent)]).
204
205
213
214 222axiom(onOppositeTeams(Ballgame, Agent1, Agent2),
223
224 [ homeTeamPlayer(Ballgame, Agent1),
225 visitingTeamPlayer(Ballgame, Agent2)
226 ]).
227axiom(onOppositeTeams(Ballgame, Agent1, Agent2),
228
229 [ homeTeamPlayer(Ballgame, Agent2),
230 visitingTeamPlayer(Ballgame, Agent1)
231 ]).
232
233 236
237 249axiom(not(onOppositeTeams(OnOppositeTeams_Param, HomeTeamPlayer_Ret, OnOppositeTeams_Ret)),
250
251 [ not(homeTeamPlayer(OnOppositeTeams_Param,
252 OnOppositeTeams_Ret)),
253 not(homeTeamPlayer(OnOppositeTeams_Param, HomeTeamPlayer_Ret))
254 ]).
255axiom(not(onOppositeTeams(OnOppositeTeams_Param, HomeTeamPlayer_Ret, OnOppositeTeams_Ret)),
256
257 [ not(visitingTeamPlayer(OnOppositeTeams_Param,
258 HomeTeamPlayer_Ret)),
259 not(homeTeamPlayer(OnOppositeTeams_Param, HomeTeamPlayer_Ret))
260 ]).
261axiom(not(onOppositeTeams(OnOppositeTeams_Param, HomeTeamPlayer_Ret, OnOppositeTeams_Ret)),
262
263 [ not(homeTeamPlayer(OnOppositeTeams_Param,
264 OnOppositeTeams_Ret)),
265 not(visitingTeamPlayer(OnOppositeTeams_Param,
266 OnOppositeTeams_Ret))
267 ]).
268axiom(not(onOppositeTeams(OnOppositeTeams_Param, HomeTeamPlayer_Ret, OnOppositeTeams_Ret)),
269
270 [ not(visitingTeamPlayer(OnOppositeTeams_Param,
271 HomeTeamPlayer_Ret)),
272 not(visitingTeamPlayer(OnOppositeTeams_Param,
273 OnOppositeTeams_Ret))
274 ]).
275
276 286axiom(homeTeamPlayer(HomeTeamPlayer_Param, HomeTeamPlayer_Ret7),
287
288 [ not(homeTeamPlayer(HomeTeamPlayer_Param, HomeTeamPlayer_Ret8)),
289 onOppositeTeams(HomeTeamPlayer_Param,
290 HomeTeamPlayer_Ret7,
291 HomeTeamPlayer_Ret8)
292 ]).
293axiom(homeTeamPlayer(HomeTeamPlayer_Param, HomeTeamPlayer_Ret7),
294
295 [ not(visitingTeamPlayer(HomeTeamPlayer_Param,
296 HomeTeamPlayer_Ret7)),
297 onOppositeTeams(HomeTeamPlayer_Param,
298 HomeTeamPlayer_Ret7,
299 HomeTeamPlayer_Ret8)
300 ]).
301
302 312axiom(visitingTeamPlayer(VisitingTeamPlayer_Param, VisitingTeamPlayer_Ret),
313
314 [ not(homeTeamPlayer(VisitingTeamPlayer_Param,
315 VisitingTeamPlayer_Ret)),
316 onOppositeTeams(VisitingTeamPlayer_Param,
317 VisitingTeamPlayer_Ret11,
318 VisitingTeamPlayer_Ret)
319 ]).
320axiom(visitingTeamPlayer(VisitingTeamPlayer_Param, VisitingTeamPlayer_Ret),
321
322 [ not(visitingTeamPlayer(VisitingTeamPlayer_Param,
323 VisitingTeamPlayer_Ret11)),
324 onOppositeTeams(VisitingTeamPlayer_Param,
325 VisitingTeamPlayer_Ret11,
326 VisitingTeamPlayer_Ret)
327 ]).
328
329 339axiom(homeTeamPlayer(HomeTeamPlayer_Param12, HomeTeamPlayer_Ret13),
340
341 [ not(homeTeamPlayer(HomeTeamPlayer_Param12,
342 HomeTeamPlayer_Ret14)),
343 onOppositeTeams(HomeTeamPlayer_Param12,
344 HomeTeamPlayer_Ret14,
345 HomeTeamPlayer_Ret13)
346 ]).
347axiom(homeTeamPlayer(HomeTeamPlayer_Param12, HomeTeamPlayer_Ret13),
348
349 [ not(visitingTeamPlayer(HomeTeamPlayer_Param12,
350 HomeTeamPlayer_Ret13)),
351 onOppositeTeams(HomeTeamPlayer_Param12,
352 HomeTeamPlayer_Ret14,
353 HomeTeamPlayer_Ret13)
354 ]).
355
356 366axiom(visitingTeamPlayer(VisitingTeamPlayer_Param15, VisitingTeamPlayer_Ret16),
367
368 [ not(homeTeamPlayer(VisitingTeamPlayer_Param15,
369 VisitingTeamPlayer_Ret16)),
370 onOppositeTeams(VisitingTeamPlayer_Param15,
371 VisitingTeamPlayer_Ret16,
372 VisitingTeamPlayer_Ret17)
373 ]).
374axiom(visitingTeamPlayer(VisitingTeamPlayer_Param15, VisitingTeamPlayer_Ret16),
375
376 [ not(visitingTeamPlayer(VisitingTeamPlayer_Param15,
377 VisitingTeamPlayer_Ret17)),
378 onOppositeTeams(VisitingTeamPlayer_Param15,
379 VisitingTeamPlayer_Ret16,
380 VisitingTeamPlayer_Ret17)
381 ]).
382
383
392
393 396
397 409axiom(not(happens(pitch(Pitch_Param, Near_Param, _, Near_Param8), time)),
410
411 [ not(holds_at(near(Near_Param, Equals_Ret), time)),
412 equals(pitchermoundOf(Pitch_Param), Equals_Ret),
413 equals(homeplateOf(Pitch_Param), Equals_Ret10)
414 ]).
415axiom(not(happens(pitch(Pitch_Param, Near_Param, _, Near_Param8), time)),
416
417 [ not(holds_at(near(Near_Param8, Equals_Ret10), time)),
418 equals(pitchermoundOf(Pitch_Param), Equals_Ret),
419 equals(homeplateOf(Pitch_Param), Equals_Ret10)
420 ]).
421axiom(not(happens(pitch(Pitch_Param, Near_Param, _, Near_Param8), time)),
422
423 [ not(onOppositeTeams(Pitch_Param,
424 Near_Param,
425 Near_Param8)),
426 equals(pitchermoundOf(Pitch_Param), Equals_Ret),
427 equals(homeplateOf(Pitch_Param), Equals_Ret10)
428 ]).
429
430 444axiom(not(equals(pitchermoundOf(Pitch_Param11), Equals_Ret14)),
445
446 [ not(holds_at(near(Near_Param12, Equals_Ret14), time)),
447 equals(homeplateOf(Pitch_Param11), Equals_Ret15),
448 happens(pitch(Pitch_Param11,
449 Near_Param12,
450 _,
451 Near_Param13),
452 time)
453 ]).
454axiom(not(equals(pitchermoundOf(Pitch_Param11), Equals_Ret14)),
455
456 [ not(holds_at(near(Near_Param13, Equals_Ret15), time)),
457 equals(homeplateOf(Pitch_Param11), Equals_Ret15),
458 happens(pitch(Pitch_Param11,
459 Near_Param12,
460 _,
461 Near_Param13),
462 time)
463 ]).
464axiom(not(equals(pitchermoundOf(Pitch_Param11), Equals_Ret14)),
465
466 [ not(onOppositeTeams(Pitch_Param11,
467 Near_Param12,
468 Near_Param13)),
469 equals(homeplateOf(Pitch_Param11), Equals_Ret15),
470 happens(pitch(Pitch_Param11,
471 Near_Param12,
472 _,
473 Near_Param13),
474 time)
475 ]).
476
477 491axiom(not(equals(homeplateOf(Pitch_Param16), Equals_Ret19)),
492
493 [ not(holds_at(near(Near_Param17, Equals_Ret20), time)),
494 equals(pitchermoundOf(Pitch_Param16), Equals_Ret20),
495 happens(pitch(Pitch_Param16,
496 Near_Param17,
497 _,
498 Near_Param18),
499 time)
500 ]).
501axiom(not(equals(homeplateOf(Pitch_Param16), Equals_Ret19)),
502
503 [ not(holds_at(near(Near_Param18, Equals_Ret19), time)),
504 equals(pitchermoundOf(Pitch_Param16), Equals_Ret20),
505 happens(pitch(Pitch_Param16,
506 Near_Param17,
507 _,
508 Near_Param18),
509 time)
510 ]).
511axiom(not(equals(homeplateOf(Pitch_Param16), Equals_Ret19)),
512
513 [ not(onOppositeTeams(Pitch_Param16,
514 Near_Param17,
515 Near_Param18)),
516 equals(pitchermoundOf(Pitch_Param16), Equals_Ret20),
517 happens(pitch(Pitch_Param16,
518 Near_Param17,
519 _,
520 Near_Param18),
521 time)
522 ]).
523
524 533axiom(holds_at(near(Near_Param21, Near_Ret), time),
534
535 [ happens(pitch(Pitch_Param22,
536 Near_Param21,
537 _,
538 Pitch_Ret),
539 time),
540 equals(pitchermoundOf(Pitch_Param22), Near_Ret),
541 equals(homeplateOf(Pitch_Param22), Equals_Ret25)
542 ]).
543
544 550axiom(holds_at(near(Near_Param26, Near_Ret28), time),
551
552 [ happens(pitch(Pitch_Param27, _, _, Near_Param26),
553 time),
554 equals(pitchermoundOf(Pitch_Param27), Equals_Ret29),
555 equals(homeplateOf(Pitch_Param27), Near_Ret28)
556 ]).
557
558 567axiom(onOppositeTeams(OnOppositeTeams_Param, A, OnOppositeTeams_Ret),
568
569 [ happens(pitch(OnOppositeTeams_Param,
570 A,
571 _,
572 OnOppositeTeams_Ret),
573 time),
574 equals(pitchermoundOf(OnOppositeTeams_Param), Equals_Ret32),
575 equals(homeplateOf(OnOppositeTeams_Param), Equals_Ret33)
576 ]).
577
578
584
585 589
590 603axiom(happens(pitchInStrikeZone(PitchInStrikeZone_Param, A, B, PitchInStrikeZone_Ret), Maptime),
604
605 [ not(happens(pitchOutOfStrikeZone(PitchInStrikeZone_Param,
606 A,
607 B,
608 PitchInStrikeZone_Ret),
609 Maptime)),
610 happens(pitch(PitchInStrikeZone_Param,
611 A,
612 B,
613 PitchInStrikeZone_Ret),
614 Maptime)
615 ]).
616
617 629axiom(happens(pitchOutOfStrikeZone(PitchOutOfStrikeZone_Param, A, B, PitchOutOfStrikeZone_Ret), Maptime8),
630
631 [ not(happens(pitchInStrikeZone(PitchOutOfStrikeZone_Param,
632 A,
633 B,
634 PitchOutOfStrikeZone_Ret),
635 Maptime8)),
636 happens(pitch(PitchOutOfStrikeZone_Param,
637 A,
638 B,
639 PitchOutOfStrikeZone_Ret),
640 Maptime8)
641 ]).
642
643 655axiom(not(happens(pitch(Pitch_Param, A, B, Pitch_Ret), Maptime11)),
656
657 [ not(happens(pitchInStrikeZone(Pitch_Param,
658 A,
659 B,
660 Pitch_Ret),
661 Maptime11)),
662 not(happens(pitchOutOfStrikeZone(Pitch_Param,
663 A,
664 B,
665 Pitch_Ret),
666 Maptime11))
667 ]).
668
669
675axiom(not(happens(pitchOutOfStrikeZone(Ballgame, Agent1, Hardball, Agent2), Time)),
676
677 [ happens(pitchInStrikeZone(Ballgame,
678 Agent1,
679 Hardball,
680 Agent2),
681 Time)
682 ]).
683
684
690axiom(happens(swing(Ballgame, Agent2, Hardball), start),
691
692 [ happens(pitchInStrikeZone(Ballgame,
693 Agent1,
694 Hardball,
695 Agent2),
696 t),
697 b(t, start),
698 ignore(t+1=start)
699 ]).
700
701
707
708 711
712 719axiom(happens(swingHit(SwingHit_Param, A, SwingHit_Ret), Maptime),
720
721 [ not(happens(swingMiss(SwingHit_Param, A, SwingHit_Ret),
722 Maptime)),
723 happens(swing(SwingHit_Param, A, SwingHit_Ret),
724 Maptime)
725 ]).
726
727 733axiom(happens(swingMiss(SwingMiss_Param, A, SwingMiss_Ret), Maptime7),
734
735 [ not(happens(swingHit(SwingMiss_Param, A, SwingMiss_Ret),
736 Maptime7)),
737 happens(swing(SwingMiss_Param, A, SwingMiss_Ret),
738 Maptime7)
739 ]).
740
741 747axiom(not(happens(swing(Swing_Param, A, Swing_Ret), Maptime10)),
748
749 [ not(happens(swingHit(Swing_Param, A, Swing_Ret),
750 Maptime10)),
751 not(happens(swingMiss(Swing_Param, A, Swing_Ret),
752 Maptime10))
753 ]).
754
755
761axiom(not(happens(swingMiss(Ballgame, Agent, Hardball), Time)),
762 [happens(swingHit(Ballgame, Agent, Hardball), Time)]).
763
764
770
771 774
775 784axiom(happens(swingHitFair(SwingHitFair_Param, A, SwingHitFair_Ret), Maptime),
785
786 [ not(happens(swingHitFoul(SwingHitFair_Param,
787 A,
788 SwingHitFair_Ret),
789 Maptime)),
790 happens(swingHit(SwingHitFair_Param,
791 A,
792 SwingHitFair_Ret),
793 Maptime)
794 ]).
795
796 804axiom(happens(swingHitFoul(SwingHitFoul_Param, A, SwingHitFoul_Ret), Maptime7),
805
806 [ not(happens(swingHitFair(SwingHitFoul_Param,
807 A,
808 SwingHitFoul_Ret),
809 Maptime7)),
810 happens(swingHit(SwingHitFoul_Param,
811 A,
812 SwingHitFoul_Ret),
813 Maptime7)
814 ]).
815
816 822axiom(not(happens(swingHit(SwingHit_Param, A, SwingHit_Ret), Maptime10)),
823
824 [ not(happens(swingHitFair(SwingHit_Param,
825 A,
826 SwingHit_Ret),
827 Maptime10)),
828 not(happens(swingHitFoul(SwingHit_Param,
829 A,
830 SwingHit_Ret),
831 Maptime10))
832 ]).
833
834
840axiom(not(happens(swingHitFoul(Ballgame, Agent, Hardball), Time)),
841
842 [ happens(swingHitFair(Ballgame, Agent, Hardball),
843 Time)
844 ]).
845
846
852
853 857
858 869axiom(happens(swingHitFairFly(SwingHitFairFly_Param, A, SwingHitFairFly_Ret), Maptime),
870
871 [ not(happens(swingHitFairGround(SwingHitFairFly_Param,
872 A,
873 SwingHitFairFly_Ret),
874 Maptime)),
875 happens(swingHitFair(SwingHitFairFly_Param,
876 A,
877 SwingHitFairFly_Ret),
878 Maptime)
879 ]).
880
881 891axiom(happens(swingHitFairGround(SwingHitFairGround_Param, A, SwingHitFairGround_Ret), Maptime7),
892
893 [ not(happens(swingHitFairFly(SwingHitFairGround_Param,
894 A,
895 SwingHitFairGround_Ret),
896 Maptime7)),
897 happens(swingHitFair(SwingHitFairGround_Param,
898 A,
899 SwingHitFairGround_Ret),
900 Maptime7)
901 ]).
902
903 913axiom(not(happens(swingHitFair(SwingHitFair_Param, A, SwingHitFair_Ret), Maptime10)),
914
915 [ not(happens(swingHitFairFly(SwingHitFair_Param,
916 A,
917 SwingHitFair_Ret),
918 Maptime10)),
919 not(happens(swingHitFairGround(SwingHitFair_Param,
920 A,
921 SwingHitFair_Ret),
922 Maptime10))
923 ]).
924
925
931axiom(happens(swingHitFairGround(Ballgame, Agent, Hardball), Time),
932
933 [ happens(swingHitFairFly(Ballgame, Agent, Hardball),
934 Time)
935 ]).
936
937
945axiom(happens(runFromTo(Agent, Homeplate, Firstbase), Time),
946
947 [ happens(swingHit(Ballgame, Agent, Hardball), Time),
948 equals(homeplateOf(Ballgame), Homeplate),
949 equals(firstBaseOf(Ballgame), Firstbase)
950 ]).
951
952
960axiom(happens(hitFromTo(Agent, Hardball, Homeplate, Outfield), Time),
961
962 [ equals(homeplateOf(Ballgame), Homeplate),
963 equals(outfieldOf(Ballgame), Outfield),
964 happens(swingHitFairFly(Ballgame, Agent, Hardball),
965 Time)
966 ]).
967
968