36 Linear Logic Programming Configuration (linear context) term/predicate declarations, permanent facts, and rules [Harland et al. 2000; Lopez et al. 2005] e.g. Signature (permanent rules)
46 Interactivity? 1: (buff gwenn chris (s z)) 2: (buff gwenn karl (s z)) […] 17: (target chris (s z) gwenn (s (s (s z))) (s (s z))) 18: (target chris (s z) chris (s (s (s z))) (s (s z))) ?-
47 Interactivity? 1: (buff gwenn chris (s z)) 2: (buff gwenn karl (s z)) […] 17: (target chris (s z) gwenn (s (s (s z))) (s (s z))) 18: (target chris (s z) chris (s (s (s z))) (s (s z))) ?- yellow team blue team
attack : turn Player * $on_team Player Team * opp Team Team’ * $on_team Enemy Team’ * $attack Player Att * health Enemy H -o subtract Enemy H Att. 65 Augmenting rules with strategies:
rules } Find in linear context attack : turn Player * $on_team Player Team * $on_team Enemy Team’ * $attack W Att * health Enemy H * opp Team Team’ * nat_minus H Att H’ -o health Enemy H’. 90
subtract/s : subtract P (s Health) (s Att) -o subtract P Health Att. ! subtract/done : subtract P H z -o health P H. ! subtract/die : subtract P z Att -o dead P. Forward-Chaining Subtraction 92
nat_minus nat nat nat : bwd. minus/z- : nat_minus z N z. minus/-z : nat_minus N z N. minus/s : nat_minus (s N) (s M) P <- nat_minus N M P. Backward-Chaining Subtraction 93
Types and Predicates team : type. blue : team. yellow : team. ! player : type. ! on_team player team : pred. health player nat : pred. attack player nat : pred. 95
Types and Predicates nat : type. z : nat. s nat : nat. (Operators on numbers can be defined in the language via backward chaining, or by accessing built-in functions.) 96
do/genturns attack gwenn blue yellow chris (s (s z)) (s z) z buff_other chris yellow roger (s (s z)) x176 buff frank (s (s (s z))) do/gen_turn blue frank do/gen_turn blue gwenn x191 do/genturns another_round x192 x194 do/play x193 buff roger (s (s (s z))) x202 do/gen_gen_turns x201 x203 do/gen_turn yellow karl x208 x207 x206 x209 x211 switch_team_turn blue yellow x210 x214 x213 x212 do/gen_turn frank x217 x216 x215 do/restore_team gwenn blue do/gen_turn gwenn x221 x220 x219 x218 x223 x222 x224 x226 x227 x228 x233 x232 x231 die chris yellow x234 x238 x237 111