Rules in archetypes - getting it right

I converted the motricity example to the symbolic form, just to think about it. Below, the original, then the converted.

rules
    $arm_score:Integer ::= /data[id2]/events[id3]/data[id4]/items[id5]/items[id7]/value/value + /data[id2]/events[id3]/data[id4]/items[id5]/items[id9]/value/value + /data[id2]/events[id3]/data[id4]/items[id5]/items[id11]/value/value
    arm: $arm_score < 99 implies /data[id2]/events[id3]/data[id4]/items[id5]/items[id13]/value/magnitude = $arm_score
    arm_round_up: $arm_score = 99 implies /data[id2]/events[id3]/data[id4]/items[id5]/items[id13]/value/magnitude = 100
    $leg_score:Integer ::= /data[id2]/events[id3]/data[id4]/items[id6]/items[id14]/value/value + /data[id2]/events[id3]/data[id4]/items[id6]/items[id16]/value/value + /data[id2]/events[id3]/data[id4]/items[id6]/items[id18]/value/value
    leg: $leg_score < 99 implies /data[id2]/events[id3]/data[id4]/items[id6]/items[id20]/value/magnitude = $leg_score
    leg_round_up: $leg_score = 99 implies /data[id2]/events[id3]/data[id4]/items[id6]/items[id20]/value/magnitude = 100
    sum_score: /data[id2]/events[id3]/data[id4]/items[id24]/value/magnitude = /data[id2]/events[id3]/data[id4]/items[id5]/items[id13]/value/magnitude + /data[id2]/events[id3]/data[id4]/items[id6]/items[id20]/value/magnitude
    total_score: exists /data[id2]/events[id3]/data[id4]/items[id24]/value/magnitude implies  (/data[id2]/events[id3]/data[id4]/items[id22]/value/magnitude = /data[id2]/events[id3]/data[id4]/items[id24]/value/magnitude / 2) 

Reworked in binding form:

rules
    arm_score_computed:Integer ::= pinch_grip + elbow_extension + shoulder_abduction
    arm: arm_score_computed < 99 implies arm_score = arm_score_computed
    arm_round_up: arm_score_computed = 99 implies arm_score = 100

    leg_score_computed:Integer ::= ankle_dorsiflexion + knee_extension + hip_flexion
    leg: leg_score_computed < 99 implies leg_score = leg_score_computed
    leg_round_up: leg_score_computed = 99 implies leg_score = 100

    sum_score: summed_score = arm_score + leg_score
    total_score: exists summed_score implies  (total_score = summed_score / 2) 

symbols
  bindings = <
    ["pinch_grip"] = <"/data[id2]/events[id3]/data[id4]/items[id5]/items[id7]/value/value">
    ["elbow_extension"] = <"/data[id2]/events[id3]/data[id4]/items[id5]/items[id9]/value/value">
    ["shoulder_abduction"] = <"/data[id2]/events[id3]/data[id4]/items[id5]/items[id11]/value/value">
    ["arm_score"] = <"/data[id2]/events[id3]/data[id4]/items[id5]/items[id13]/value/magnitude">
    ["ankle_dorsiflexion"] = <"/data[id2]/events[id3]/data[id4]/items[id6]/items[id14]/value/value">
    ["knee_extension"] = <"/data[id2]/events[id3]/data[id4]/items[id6]/items[id16]/value/value">
    ["hip_flexion"] = <"/data[id2]/events[id3]/data[id4]/items[id6]/items[id18]/value/value">
    ["leg_score"] = <"/data[id2]/events[id3]/data[id4]/items[id6]/items[id20]/value/magnitude">
    ["summed_score"] = <"/data[id2]/events[id3]/data[id4]/items[id24]/value/magnitude">
    ["total_score"] = <"/data[id2]/events[id3]/data[id4]/items[id22]/value/magnitude">
  >