-- S18-WBS-R-0321 p 58
-- Loss of all wheel braking (annunciated or unannunciated)
-- during landing or RTO
-- shall be extremely remote
CONTRACT never_loss_of_all_wheel_braking assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : never ((mechanical_pedal_pos_L and mechanical_pedal_pos_R)
and ground_speed>0
and
not ((mechanical_pedal_pos_L
and (wheel_status_1=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_1>0)
and
not ((mechanical_pedal_pos_L
and (wheel_status_2=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_2>0)
and
not ((mechanical_pedal_pos_R
and (wheel_status_3=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_3>0)
and
not ((mechanical_pedal_pos_R
and (wheel_status_4=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_4>0)
and
not ((mechanical_pedal_pos_L
and (wheel_status_5=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_5>0)
and
not ((mechanical_pedal_pos_L
and (wheel_status_6=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_6>0)
and
not ((mechanical_pedal_pos_R
and (wheel_status_7=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_7>0)
and
not ((mechanical_pedal_pos_R
and (wheel_status_8=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_8>0)) ;
-- S18-WBS-R-0322 p 58
-- Asymmetrical loss of wheel braking
-- coupled with loss of rudder or nose wheel steering
-- during landing or RTO
-- shall be extremely remote
-- Loss of the left side
CONTRACT never_asymmetric_loss_of_wheel_braking_left assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : never (mechanical_pedal_pos_L
and mechanical_pedal_pos_R
and ground_speed>0
and count (((mechanical_pedal_pos_L
and (wheel_status_1=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_1>0) , ((mechanical_pedal_pos_L
and (wheel_status_2=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_2>0) , ((mechanical_pedal_pos_L
and (wheel_status_5=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_5>0) , ((mechanical_pedal_pos_L
and (wheel_status_6=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_6>0))=0
and count (((mechanical_pedal_pos_R
and (wheel_status_3=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_3>0) , ((mechanical_pedal_pos_R
and (wheel_status_4=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_4>0) , ((mechanical_pedal_pos_R
and (wheel_status_7=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_7>0) , ((mechanical_pedal_pos_R
and (wheel_status_8=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_8>0))=4
) ;
-- S18-WBS-R-0322 p 58
-- Asymmetrical loss of wheel braking
-- coupled with loss of rudder or nose wheel steering
-- during landing or RTO
-- shall be extremely remote
-- Loss of the right side
CONTRACT never_asymmetric_loss_of_wheel_braking_right assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : never (mechanical_pedal_pos_L
and mechanical_pedal_pos_R
and ground_speed>0
and count (((mechanical_pedal_pos_L
and (wheel_status_1=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_1>0) , ((mechanical_pedal_pos_L
and (wheel_status_2=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_2>0) , ((mechanical_pedal_pos_L
and (wheel_status_5=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_5>0) , ((mechanical_pedal_pos_L
and (wheel_status_6=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_6>0))=4
and count (((mechanical_pedal_pos_R
and (wheel_status_3=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_3>0) , ((mechanical_pedal_pos_R
and (wheel_status_4=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_4>0) , ((mechanical_pedal_pos_R
and (wheel_status_7=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_7>0) , ((mechanical_pedal_pos_R
and (wheel_status_8=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_8>0))=0
) ;
-- S18-WBS-0323 p 59
-- Inadvertent wheel braking with all wheels locked during
-- take off roll before V1
-- shall be extremely remote
CONTRACT never_inadvertent_braking_with_all_wheels_locked assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : never (((not mechanical_pedal_pos_L) and (not mechanical_pedal_pos_R))
and (wheel_braking_force_1>0 and
wheel_braking_force_2>0 and
wheel_braking_force_3>0 and
wheel_braking_force_4>0 and
wheel_braking_force_5>0 and
wheel_braking_force_6>0 and
wheel_braking_force_7>0 and
wheel_braking_force_8>0
) and (wheel_status_1=stopped and
wheel_status_2=stopped and
wheel_status_3=stopped and
wheel_status_4=stopped and
wheel_status_5=stopped and
wheel_status_6=stopped and
wheel_status_7=stopped and
wheel_status_8=stopped
) and (ground_speed > 0 )) ;
-- S18-WBS-0324 p 59
-- Inadvertent wheel braking of all wheels during
-- take off roll after V1
-- shall be extremely improbable
CONTRACT never_inadvertent_braking_of_all_wheels assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : never (((not mechanical_pedal_pos_L) and (not mechanical_pedal_pos_R))
and (wheel_braking_force_1>0 and
wheel_braking_force_2>0 and
wheel_braking_force_3>0 and
wheel_braking_force_4>0 and
wheel_braking_force_5>0 and
wheel_braking_force_6>0 and
wheel_braking_force_7>0 and
wheel_braking_force_8>0
) and (ground_speed > 0 )) ;
-- S18-WBS-0325 p 59
-- Undetected inadvertent wheel braking on one wheel
-- w/o locking during takeoff
-- shall be extremely improbable
-- Duplicate the property for each wheel
CONTRACT never_inadvertent_braking_of_wheel_1 assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : never ((not mechanical_pedal_pos_L) and ground_speed>0 and wheel_braking_force_1>0 and wheel_status_1=rolling) ;
CONTRACT never_inadvertent_braking_of_wheel_2 assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : never ((not mechanical_pedal_pos_L) and ground_speed>0 and wheel_braking_force_2>0 and wheel_status_2=rolling) ;
CONTRACT never_inadvertent_braking_of_wheel_3 assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : never ((not mechanical_pedal_pos_R) and ground_speed>0 and wheel_braking_force_3>0 and wheel_status_3=rolling) ;
CONTRACT never_inadvertent_braking_of_wheel_4 assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : never ((not mechanical_pedal_pos_R) and ground_speed>0 and wheel_braking_force_4>0 and wheel_status_4=rolling) ;
CONTRACT never_inadvertent_braking_of_wheel_5 assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : never ((not mechanical_pedal_pos_L) and ground_speed>0 and wheel_braking_force_5>0 and wheel_status_5=rolling) ;
CONTRACT never_inadvertent_braking_of_wheel_6 assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : never ((not mechanical_pedal_pos_L) and ground_speed>0 and wheel_braking_force_6>0 and wheel_status_6=rolling) ;
CONTRACT never_inadvertent_braking_of_wheel_7 assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : never ((not mechanical_pedal_pos_R) and ground_speed>0 and wheel_braking_force_7>0 and wheel_status_7=rolling) ;
CONTRACT never_inadvertent_braking_of_wheel_8 assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : never ((not mechanical_pedal_pos_R) and ground_speed>0 and wheel_braking_force_8>0 and wheel_status_8=rolling) ;
-- The capacity to brake the four wheels in the left landing gear is always available in the nominal case
CONTRACT asymmetrical_left_braking assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : always (((mechanical_pedal_pos_L
and (wheel_status_1=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_1>0) and ((mechanical_pedal_pos_L
and (wheel_status_2=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_2>0) and ((mechanical_pedal_pos_L
and (wheel_status_5=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_5>0) and ((mechanical_pedal_pos_L
and (wheel_status_6=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_6>0)) ;
-- The capacity to brake the four wheels in the right landing gear is always available in the nominal case
CONTRACT asymmetrical_right_braking assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : always (((mechanical_pedal_pos_R
and (wheel_status_3=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_3>0) and ((mechanical_pedal_pos_R
and (wheel_status_4=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_4>0) and ((mechanical_pedal_pos_R
and (wheel_status_7=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_7>0) and ((mechanical_pedal_pos_R
and (wheel_status_8=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_8>0)) ;
-- The model represents the behavior of the wbs on the ground
-- The wheel is skidding means that the wheel is stopped and the aircraft is moving
--FIRST PROPERTY: CMD implies braking force
--GUARANTEE:
-- For each wheel, if:
-- the assigned mechanical pedal position signal is available
-- and:
-- the wheel is not skidding or the ground speed equals 0 or the control system is invalid
-- Then there is a braking force
--
--SECOND PROPERTY: braking force implies CMD
--GUARANTEE:
-- For each wheel, if there is a braking force then:
-- the assigned mechanical pedal position signal is available
-- and:
-- the wheel is not skidding or the ground speed equals 0
-- or the control system is invalid
CONTRACT cmd_implies_braking_wheel_1 assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : always ((mechanical_pedal_pos_L
and (wheel_status_1=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_1>0
) ;
CONTRACT braking_wheel_1_implies_cmd assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : always (wheel_braking_force_1>0 implies (mechanical_pedal_pos_L
and (wheel_status_1=rolling or ground_speed=0 or notcontrol_system_validity))) ;
CONTRACT cmd_implies_braking_wheel_2 assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : always ((mechanical_pedal_pos_L
and (wheel_status_2=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_2>0
) ;
CONTRACT braking_wheel_2_implies_cmd assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : always (wheel_braking_force_2>0 implies (mechanical_pedal_pos_L
and (wheel_status_2=rolling or ground_speed=0
or notcontrol_system_validity))) ;
CONTRACT cmd_implies_braking_wheel_3 assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : always ((mechanical_pedal_pos_R
and (wheel_status_3=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_3>0
) ;
CONTRACT braking_wheel_3_implies_cmd assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : always (wheel_braking_force_3>0 implies (mechanical_pedal_pos_R
and (wheel_status_3=rolling or ground_speed=0
or notcontrol_system_validity))) ;
CONTRACT cmd_implies_braking_wheel_4 assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : always ((mechanical_pedal_pos_R
and (wheel_status_4=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_4>0
) ;
CONTRACT braking_wheel_4_implies_cmd assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : always (wheel_braking_force_4>0 implies (mechanical_pedal_pos_R
and (wheel_status_4=rolling or ground_speed=0
or notcontrol_system_validity))) ;
CONTRACT cmd_implies_braking_wheel_5 assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : always ((mechanical_pedal_pos_L
and (wheel_status_5=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_5>0
) ;
CONTRACT braking_wheel_5_implies_cmd assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : always (wheel_braking_force_5>0 implies (mechanical_pedal_pos_L
and (wheel_status_5=rolling or ground_speed=0
or notcontrol_system_validity))) ;
CONTRACT cmd_implies_braking_wheel_6 assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : always ((mechanical_pedal_pos_L
and (wheel_status_6=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_6>0
) ;
CONTRACT braking_wheel_6_implies_cmd assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : always (wheel_braking_force_6>0 implies (mechanical_pedal_pos_L
and (wheel_status_6=rolling or ground_speed=0
or notcontrol_system_validity))) ;
CONTRACT cmd_implies_braking_wheel_7 assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : always ((mechanical_pedal_pos_R
and (wheel_status_7=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_7>0
) ;
CONTRACT braking_wheel_7_implies_cmd assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : always (wheel_braking_force_7>0 implies (mechanical_pedal_pos_R
and (wheel_status_7=rolling or ground_speed=0
or notcontrol_system_validity))) ;
CONTRACT cmd_implies_braking_wheel_8 assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : always ((mechanical_pedal_pos_R
and (wheel_status_8=rolling or ground_speed=0 or notcontrol_system_validity))
implies wheel_braking_force_8>0
) ;
CONTRACT braking_wheel_8_implies_cmd assume : always (power and pump_power and hydraulic_supply=10) ; guarantee : always (wheel_braking_force_8>0 implies (mechanical_pedal_pos_R
and (wheel_status_8=rolling or ground_speed=0
or notcontrol_system_validity))) ;
ctrl_sys
Component description:
Name
Type
Notes
ctrl_sys
ControlSystem
Input ports:
Name
Type
Range
electrical_pedal_pos_L
boolean
electrical_pedal_pos_R
boolean
ground_speed
int
[0, 10]
power
boolean
wheel_rolling_1
boolean
wheel_rolling_2
boolean
wheel_rolling_3
boolean
wheel_rolling_4
boolean
wheel_rolling_5
boolean
wheel_rolling_6
boolean
wheel_rolling_7
boolean
wheel_rolling_8
boolean
Output ports:
Name
Type
Range
brake_cmd_1
boolean
brake_cmd_2
boolean
brake_cmd_3
boolean
brake_cmd_4
boolean
brake_cmd_5
boolean
brake_cmd_6
boolean
brake_cmd_7
boolean
brake_cmd_8
boolean
as_cmd_1
boolean
as_cmd_2
boolean
as_cmd_3
boolean
as_cmd_4
boolean
as_cmd_5
boolean
as_cmd_6
boolean
as_cmd_7
boolean
as_cmd_8
boolean
system_validity
boolean
Contracts:
-- the validity of the system is true if and only if there is a power source and all the created commands are valid
CONTRACT system_validity assume : true ; guarantee : always (system_validityiff (power
and (electrical_pedal_pos_L iff brake_cmd_1)
and (electrical_pedal_pos_L iff brake_cmd_2)
and (electrical_pedal_pos_R iff brake_cmd_3)
and (electrical_pedal_pos_R iff brake_cmd_4)
and (electrical_pedal_pos_L iff brake_cmd_5)
and (electrical_pedal_pos_L iff brake_cmd_6)
and (electrical_pedal_pos_R iff brake_cmd_7)
and (electrical_pedal_pos_R iff brake_cmd_8)
and ((ground_speed>0 and notwheel_rolling_1) iff as_cmd_1)
and ((ground_speed>0 and notwheel_rolling_2) iff as_cmd_2)
and ((ground_speed>0 and notwheel_rolling_3) iff as_cmd_3)
and ((ground_speed>0 and notwheel_rolling_4) iff as_cmd_4)
and ((ground_speed>0 and notwheel_rolling_5) iff as_cmd_5)
and ((ground_speed>0 and notwheel_rolling_6) iff as_cmd_6)
and ((ground_speed>0 and notwheel_rolling_7) iff as_cmd_7)
and ((ground_speed>0 and notwheel_rolling_8) iff as_cmd_8))) ;
-- If the antiskid command is created for a wheel then:
-- the BSCU is powered
-- and the aircraft is moving
-- and the wheel is not rolling
-- if:
-- the BSCU is powered
-- and the aircraft is moving
-- and one of the wheel is not rolling
-- then:
-- the antiskid command is created for a wheel
CONTRACT expected_behavior_as_cmd_1 assume : true ; guarantee : always ((system_validity and ground_speed>0 and notwheel_rolling_1) iff as_cmd_1
) ;
CONTRACT expected_behavior_as_cmd_2 assume : true ; guarantee : always ((system_validity and ground_speed>0 and notwheel_rolling_2) iff as_cmd_2
) ;
CONTRACT expected_behavior_as_cmd_3 assume : true ; guarantee : always ((system_validity and ground_speed>0 and notwheel_rolling_3) iff as_cmd_3
) ;
CONTRACT expected_behavior_as_cmd_4 assume : true ; guarantee : always ((system_validity and ground_speed>0 and notwheel_rolling_4) iff as_cmd_4
) ;
CONTRACT expected_behavior_as_cmd_5 assume : true ; guarantee : always ((system_validity and ground_speed>0 and notwheel_rolling_5) iff as_cmd_5
) ;
CONTRACT expected_behavior_as_cmd_6 assume : true ; guarantee : always ((system_validity and ground_speed>0 and notwheel_rolling_6) iff as_cmd_6
) ;
CONTRACT expected_behavior_as_cmd_7 assume : true ; guarantee : always ((system_validity and ground_speed>0 and notwheel_rolling_7) iff as_cmd_7
) ;
CONTRACT expected_behavior_as_cmd_8 assume : true ; guarantee : always ((system_validity and ground_speed>0 and notwheel_rolling_8) iff as_cmd_8
) ;
-- If the brake command is created for a wheel then:
-- and the assigned electrical pedal position signal is available
-- and the power is available
-- If:
-- the BSCU is powered
-- and the assigned electrical pedal position signal is available
-- then:
-- the brake command is created for a wheel
CONTRACT expected_behavior_brake_cmd_1 assume : true ; guarantee : always ((system_validity and electrical_pedal_pos_L) iff brake_cmd_1) ;
CONTRACT expected_behavior_brake_cmd_2 assume : true ; guarantee : always ((system_validity and electrical_pedal_pos_L) iff brake_cmd_2) ;
CONTRACT expected_behavior_brake_cmd_3 assume : true ; guarantee : always ((system_validity and electrical_pedal_pos_R) iff brake_cmd_3) ;
CONTRACT expected_behavior_brake_cmd_4 assume : true ; guarantee : always ((system_validity and electrical_pedal_pos_R) iff brake_cmd_4) ;
CONTRACT expected_behavior_brake_cmd_5 assume : true ; guarantee : always ((system_validity and electrical_pedal_pos_L) iff brake_cmd_5) ;
CONTRACT expected_behavior_brake_cmd_6 assume : true ; guarantee : always ((system_validity and electrical_pedal_pos_L) iff brake_cmd_6) ;
CONTRACT expected_behavior_brake_cmd_7 assume : true ; guarantee : always ((system_validity and electrical_pedal_pos_R) iff brake_cmd_7) ;
CONTRACT expected_behavior_brake_cmd_8 assume : true ; guarantee : always ((system_validity and electrical_pedal_pos_R) iff brake_cmd_8) ;
bscu
Component description:
Name
Type
Notes
bscu
BSCU
Input ports:
Name
Type
Range
electrical_pedal_pos_L
boolean
electrical_pedal_pos_R
boolean
ground_speed
int
[0, 10]
power
boolean
wheel_rolling_1
boolean
wheel_rolling_2
boolean
wheel_rolling_3
boolean
wheel_rolling_4
boolean
wheel_rolling_5
boolean
wheel_rolling_6
boolean
wheel_rolling_7
boolean
wheel_rolling_8
boolean
Output ports:
Name
Type
Range
brake_cmd_1
boolean
brake_cmd_2
boolean
brake_cmd_3
boolean
brake_cmd_4
boolean
brake_cmd_5
boolean
brake_cmd_6
boolean
brake_cmd_7
boolean
brake_cmd_8
boolean
as_cmd_1
boolean
as_cmd_2
boolean
as_cmd_3
boolean
as_cmd_4
boolean
as_cmd_5
boolean
as_cmd_6
boolean
as_cmd_7
boolean
as_cmd_8
boolean
system_validity
boolean
Contracts:
-- the validity of the system is true if and only if there is a power source and all the commands are created correctly
-- The AntiSkid commands are created for each wheel if and only if:
-- there is power
-- and the aircraft is moving
-- and the wheel is not rolling
-- The brake commands are created for the wheel if and only if:
-- there is power
-- and the assigned electrical pedal position signal is available
CONTRACT system_validity assume : true ; guarantee : always (system_validityiff (power
and (electrical_pedal_pos_L iff brake_cmd_1)
and (electrical_pedal_pos_L iff brake_cmd_2)
and (electrical_pedal_pos_R iff brake_cmd_3)
and (electrical_pedal_pos_R iff brake_cmd_4)
and (electrical_pedal_pos_L iff brake_cmd_5)
and (electrical_pedal_pos_L iff brake_cmd_6)
and (electrical_pedal_pos_R iff brake_cmd_7)
and (electrical_pedal_pos_R iff brake_cmd_8)
and ((ground_speed>0 and notwheel_rolling_1) iff as_cmd_1)
and ((ground_speed>0 and notwheel_rolling_2) iff as_cmd_2)
and ((ground_speed>0 and notwheel_rolling_3) iff as_cmd_3)
and ((ground_speed>0 and notwheel_rolling_4) iff as_cmd_4)
and ((ground_speed>0 and notwheel_rolling_5) iff as_cmd_5)
and ((ground_speed>0 and notwheel_rolling_6) iff as_cmd_6)
and ((ground_speed>0 and notwheel_rolling_7) iff as_cmd_7)
and ((ground_speed>0 and notwheel_rolling_8) iff as_cmd_8))) ;
CONTRACT as_command_creation_1 assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling_1) iff as_cmd_1
) ;
CONTRACT as_command_creation_2 assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling_2) iff as_cmd_2
) ;
CONTRACT as_command_creation_3 assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling_3) iff as_cmd_3
) ;
CONTRACT as_command_creation_4 assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling_4) iff as_cmd_4
) ;
CONTRACT as_command_creation_5 assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling_5) iff as_cmd_5
) ;
CONTRACT as_command_creation_6 assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling_6) iff as_cmd_6
) ;
CONTRACT as_command_creation_7 assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling_7) iff as_cmd_7
) ;
CONTRACT as_command_creation_8 assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling_8) iff as_cmd_8
) ;
CONTRACT brake_command_creation_1 assume : true ; guarantee : always ((power and electrical_pedal_pos_L) iff brake_cmd_1
) ;
CONTRACT brake_command_creation_2 assume : true ; guarantee : always ((power and electrical_pedal_pos_L) iff brake_cmd_2
) ;
CONTRACT brake_command_creation_3 assume : true ; guarantee : always ((power and electrical_pedal_pos_R) iff brake_cmd_3
) ;
CONTRACT brake_command_creation_4 assume : true ; guarantee : always ((power and electrical_pedal_pos_R) iff brake_cmd_4
) ;
CONTRACT brake_command_creation_5 assume : true ; guarantee : always ((power and electrical_pedal_pos_L) iff brake_cmd_5
) ;
CONTRACT brake_command_creation_6 assume : true ; guarantee : always ((power and electrical_pedal_pos_L) iff brake_cmd_6
) ;
CONTRACT brake_command_creation_7 assume : true ; guarantee : always ((power and electrical_pedal_pos_R) iff brake_cmd_7
) ;
CONTRACT brake_command_creation_8 assume : true ; guarantee : always ((power and electrical_pedal_pos_R) iff brake_cmd_8
) ;
command_sys
Component description:
Name
Type
Notes
command_sys
CommandSystem
Input ports:
Name
Type
Range
power
boolean
ground_speed
int
[0, 10]
electrical_pedal_pos_L
boolean
electrical_pedal_pos_R
boolean
wheel_rolling_1
boolean
wheel_rolling_2
boolean
wheel_rolling_3
boolean
wheel_rolling_4
boolean
wheel_rolling_5
boolean
wheel_rolling_6
boolean
wheel_rolling_7
boolean
wheel_rolling_8
boolean
Output ports:
Name
Type
Range
brake_cmd_1
boolean
brake_cmd_2
boolean
brake_cmd_3
boolean
brake_cmd_4
boolean
brake_cmd_5
boolean
brake_cmd_6
boolean
brake_cmd_7
boolean
brake_cmd_8
boolean
as_cmd_1
boolean
as_cmd_2
boolean
as_cmd_3
boolean
as_cmd_4
boolean
as_cmd_5
boolean
as_cmd_6
boolean
as_cmd_7
boolean
as_cmd_8
boolean
Contracts:
-- The AntiSkid commands are created for each wheel if and only if:
-- there is a source of power
-- and the aircraft is moving
-- and the wheel is not rolling
-- The brake commands are created for each wheel if and only if:
-- there is a source of power
-- and the assigned electrical pedal position signal is available
CONTRACT as_command_creation_1 assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling_1) iff as_cmd_1
) ;
CONTRACT as_command_creation_2 assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling_2) iff as_cmd_2
) ;
CONTRACT as_command_creation_3 assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling_3) iff as_cmd_3
) ;
CONTRACT as_command_creation_4 assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling_4) iff as_cmd_4
) ;
CONTRACT as_command_creation_5 assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling_5) iff as_cmd_5
) ;
CONTRACT as_command_creation_6 assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling_6) iff as_cmd_6
) ;
CONTRACT as_command_creation_7 assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling_7) iff as_cmd_7
) ;
CONTRACT as_command_creation_8 assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling_8) iff as_cmd_8
) ;
CONTRACT brake_command_creation_1 assume : true ; guarantee : always ((power and electrical_pedal_pos_L) iff brake_cmd_1
) ;
CONTRACT brake_command_creation_2 assume : true ; guarantee : always ((power and electrical_pedal_pos_L) iff brake_cmd_2
) ;
CONTRACT brake_command_creation_3 assume : true ; guarantee : always ((power and electrical_pedal_pos_R) iff brake_cmd_3
) ;
CONTRACT brake_command_creation_4 assume : true ; guarantee : always ((power and electrical_pedal_pos_R) iff brake_cmd_4
) ;
CONTRACT brake_command_creation_5 assume : true ; guarantee : always ((power and electrical_pedal_pos_L) iff brake_cmd_5
) ;
CONTRACT brake_command_creation_6 assume : true ; guarantee : always ((power and electrical_pedal_pos_L) iff brake_cmd_6
) ;
CONTRACT brake_command_creation_7 assume : true ; guarantee : always ((power and electrical_pedal_pos_R) iff brake_cmd_7
) ;
CONTRACT brake_command_creation_8 assume : true ; guarantee : always ((power and electrical_pedal_pos_R) iff brake_cmd_8
) ;
w1_cmd_sys
Component description:
Name
Type
Notes
w1_cmd_sys
WheelCommandSystem
Input ports:
Name
Type
Range
power
boolean
ground_speed
int
[0, 10]
electrical_pedal_pos
boolean
wheel_rolling
boolean
Output ports:
Name
Type
Range
as_cmd_out
boolean
brake_cmd_out
boolean
Contracts:
--The anti-skid command for the wheel is available if and only if:
-- the wheel is skidding
-- and power is available
--and the brake command of each wheel is available if and only if:
-- a brake command is available
-- and power is available
CONTRACT commands_creation assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling) iff as_cmd_out)
and always ((power and electrical_pedal_pos) iff brake_cmd_out) ;
w2_cmd_sys
Component description:
Name
Type
Notes
w2_cmd_sys
WheelCommandSystem
Input ports:
Name
Type
Range
power
boolean
ground_speed
int
[0, 10]
electrical_pedal_pos
boolean
wheel_rolling
boolean
Output ports:
Name
Type
Range
as_cmd_out
boolean
brake_cmd_out
boolean
Contracts:
--The anti-skid command for the wheel is available if and only if:
-- the wheel is skidding
-- and power is available
--and the brake command of each wheel is available if and only if:
-- a brake command is available
-- and power is available
CONTRACT commands_creation assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling) iff as_cmd_out)
and always ((power and electrical_pedal_pos) iff brake_cmd_out) ;
w3_cmd_sys
Component description:
Name
Type
Notes
w3_cmd_sys
WheelCommandSystem
Input ports:
Name
Type
Range
power
boolean
ground_speed
int
[0, 10]
electrical_pedal_pos
boolean
wheel_rolling
boolean
Output ports:
Name
Type
Range
as_cmd_out
boolean
brake_cmd_out
boolean
Contracts:
--The anti-skid command for the wheel is available if and only if:
-- the wheel is skidding
-- and power is available
--and the brake command of each wheel is available if and only if:
-- a brake command is available
-- and power is available
CONTRACT commands_creation assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling) iff as_cmd_out)
and always ((power and electrical_pedal_pos) iff brake_cmd_out) ;
w4_cmd_sys
Component description:
Name
Type
Notes
w4_cmd_sys
WheelCommandSystem
Input ports:
Name
Type
Range
power
boolean
ground_speed
int
[0, 10]
electrical_pedal_pos
boolean
wheel_rolling
boolean
Output ports:
Name
Type
Range
as_cmd_out
boolean
brake_cmd_out
boolean
Contracts:
--The anti-skid command for the wheel is available if and only if:
-- the wheel is skidding
-- and power is available
--and the brake command of each wheel is available if and only if:
-- a brake command is available
-- and power is available
CONTRACT commands_creation assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling) iff as_cmd_out)
and always ((power and electrical_pedal_pos) iff brake_cmd_out) ;
w5_cmd_sys
Component description:
Name
Type
Notes
w5_cmd_sys
WheelCommandSystem
Input ports:
Name
Type
Range
power
boolean
ground_speed
int
[0, 10]
electrical_pedal_pos
boolean
wheel_rolling
boolean
Output ports:
Name
Type
Range
as_cmd_out
boolean
brake_cmd_out
boolean
Contracts:
--The anti-skid command for the wheel is available if and only if:
-- the wheel is skidding
-- and power is available
--and the brake command of each wheel is available if and only if:
-- a brake command is available
-- and power is available
CONTRACT commands_creation assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling) iff as_cmd_out)
and always ((power and electrical_pedal_pos) iff brake_cmd_out) ;
w6_cmd_sys
Component description:
Name
Type
Notes
w6_cmd_sys
WheelCommandSystem
Input ports:
Name
Type
Range
power
boolean
ground_speed
int
[0, 10]
electrical_pedal_pos
boolean
wheel_rolling
boolean
Output ports:
Name
Type
Range
as_cmd_out
boolean
brake_cmd_out
boolean
Contracts:
--The anti-skid command for the wheel is available if and only if:
-- the wheel is skidding
-- and power is available
--and the brake command of each wheel is available if and only if:
-- a brake command is available
-- and power is available
CONTRACT commands_creation assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling) iff as_cmd_out)
and always ((power and electrical_pedal_pos) iff brake_cmd_out) ;
w7_cmd_sys
Component description:
Name
Type
Notes
w7_cmd_sys
WheelCommandSystem
Input ports:
Name
Type
Range
power
boolean
ground_speed
int
[0, 10]
electrical_pedal_pos
boolean
wheel_rolling
boolean
Output ports:
Name
Type
Range
as_cmd_out
boolean
brake_cmd_out
boolean
Contracts:
--The anti-skid command for the wheel is available if and only if:
-- the wheel is skidding
-- and power is available
--and the brake command of each wheel is available if and only if:
-- a brake command is available
-- and power is available
CONTRACT commands_creation assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling) iff as_cmd_out)
and always ((power and electrical_pedal_pos) iff brake_cmd_out) ;
w8_cmd_sys
Component description:
Name
Type
Notes
w8_cmd_sys
WheelCommandSystem
Input ports:
Name
Type
Range
power
boolean
ground_speed
int
[0, 10]
electrical_pedal_pos
boolean
wheel_rolling
boolean
Output ports:
Name
Type
Range
as_cmd_out
boolean
brake_cmd_out
boolean
Contracts:
--The anti-skid command for the wheel is available if and only if:
-- the wheel is skidding
-- and power is available
--and the brake command of each wheel is available if and only if:
-- a brake command is available
-- and power is available
CONTRACT commands_creation assume : true ; guarantee : always ((power and ground_speed>0 and notwheel_rolling) iff as_cmd_out)
and always ((power and electrical_pedal_pos) iff brake_cmd_out) ;
phys_sys
Component description:
Name
Type
Notes
phys_sys
PhysicalSystem
Input ports:
Name
Type
Range
hydraulic_supply
int
[0, 10]
pump_power
boolean
system_validity
boolean
brake_cmd_1
boolean
brake_cmd_2
boolean
brake_cmd_3
boolean
brake_cmd_4
boolean
brake_cmd_5
boolean
brake_cmd_6
boolean
brake_cmd_7
boolean
brake_cmd_8
boolean
as_cmd_1
boolean
as_cmd_2
boolean
as_cmd_3
boolean
as_cmd_4
boolean
as_cmd_5
boolean
as_cmd_6
boolean
as_cmd_7
boolean
as_cmd_8
boolean
ground_speed
int
[0, 10]
mechanical_pedal_pos_L
boolean
mechanical_pedal_pos_R
boolean
Output ports:
Name
Type
Range
accumulator_pressure_display
int
[0, 10]
wheel_status_1
ENUM_1
[rolling, stopped]
wheel_status_2
ENUM_1
[rolling, stopped]
wheel_status_3
ENUM_1
[rolling, stopped]
wheel_status_4
ENUM_1
[rolling, stopped]
wheel_status_5
ENUM_1
[rolling, stopped]
wheel_status_6
ENUM_1
[rolling, stopped]
wheel_status_7
ENUM_1
[rolling, stopped]
wheel_status_8
ENUM_1
[rolling, stopped]
wheel_braking_force_1
int
[0, 10]
wheel_braking_force_2
int
[0, 10]
wheel_braking_force_3
int
[0, 10]
wheel_braking_force_4
int
[0, 10]
wheel_braking_force_5
int
[0, 10]
wheel_braking_force_6
int
[0, 10]
wheel_braking_force_7
int
[0, 10]
wheel_braking_force_8
int
[0, 10]
Contracts:
-- S18-WBS-R-0321 p 58
-- Loss of all wheel braking (annunciated or unannunciated)
-- during landing or RTO
-- shall be extremely remote
CONTRACT never_loss_of_all_wheel_braking assume : true ; guarantee : never ( not (((brake_cmd_1 or mechanical_pedal_pos_L) and not as_cmd_1) implies wheel_braking_force_1>0)
and not (((brake_cmd_2 or mechanical_pedal_pos_L) and not as_cmd_2) implies wheel_braking_force_2>0)
and not (((brake_cmd_3 or mechanical_pedal_pos_R) and not as_cmd_3) implies wheel_braking_force_3>0)
and not (((brake_cmd_4 or mechanical_pedal_pos_R) and not as_cmd_4) implies wheel_braking_force_4>0)
and not (((brake_cmd_5 or mechanical_pedal_pos_L) and not as_cmd_5) implies wheel_braking_force_5>0)
and not (((brake_cmd_6 or mechanical_pedal_pos_L) and not as_cmd_6) implies wheel_braking_force_6>0)
and not (((brake_cmd_7 or mechanical_pedal_pos_R) and not as_cmd_7) implies wheel_braking_force_7>0)
and not (((brake_cmd_8 or mechanical_pedal_pos_R) and not as_cmd_8) implies wheel_braking_force_8>0)) ;
-- S18-WBS-R-0322 p 58
-- Asymmetrical loss of wheel braking
-- coupled with loss of rudder or nose wheel steering
-- during landing or RTO
-- shall be extremely remote
-- Loss of the left side
CONTRACT never_asymmetric_loss_of_wheel_braking_left assume : true ; guarantee : never (count ((((brake_cmd_1 or mechanical_pedal_pos_L) and not as_cmd_1) implies wheel_braking_force_1>0) ,
(((brake_cmd_2 or mechanical_pedal_pos_L) and not as_cmd_2) implies wheel_braking_force_2>0) , (((brake_cmd_5 or mechanical_pedal_pos_L) and not as_cmd_5) implies wheel_braking_force_5>0) ,
(((brake_cmd_6 or mechanical_pedal_pos_L) and not as_cmd_6) implies wheel_braking_force_6>0))=0
and
count ((((brake_cmd_3 or mechanical_pedal_pos_R) and not as_cmd_3) implies wheel_braking_force_3>0) , (((brake_cmd_4 or mechanical_pedal_pos_R) and not as_cmd_4) implies wheel_braking_force_4>0) ,
(((brake_cmd_7 or mechanical_pedal_pos_R) and not as_cmd_7) implies wheel_braking_force_7>0) , (((brake_cmd_8 or mechanical_pedal_pos_R) and not as_cmd_8) implies wheel_braking_force_8>0))=4
) ;
-- S18-WBS-R-0322 p 58
-- Asymmetrical loss of wheel braking
-- coupled with loss of rudder or nose wheel steering
-- during landing or RTO
-- shall be extremely remote
-- Loss of the right side
CONTRACT never_asymmetric_loss_of_wheel_braking_right assume : true ; guarantee : never (count ((((brake_cmd_1 or mechanical_pedal_pos_L) and not as_cmd_1) implies wheel_braking_force_1>0) ,
(((brake_cmd_2 or mechanical_pedal_pos_L) and not as_cmd_2) implies wheel_braking_force_2>0) , (((brake_cmd_5 or mechanical_pedal_pos_L) and not as_cmd_5) implies wheel_braking_force_5>0) ,
(((brake_cmd_6 or mechanical_pedal_pos_L) and not as_cmd_6) implies wheel_braking_force_6>0))=4
and
count ((((brake_cmd_3 or mechanical_pedal_pos_R) and not as_cmd_3) implies wheel_braking_force_3>0) , (((brake_cmd_4 or mechanical_pedal_pos_R) and not as_cmd_4) implies wheel_braking_force_4>0) ,
(((brake_cmd_7 or mechanical_pedal_pos_R) and not as_cmd_7) implies wheel_braking_force_7>0) , (((brake_cmd_8 or mechanical_pedal_pos_R) and not as_cmd_8) implies wheel_braking_force_8>0))=0
) ;
-- S18-WBS-0323 p 59
-- Inadvertent wheel braking with all wheels locked during
-- take off roll before V1
-- shall be extremely remote
CONTRACT never_inadvertent_braking_with_all_wheels_locked assume : true ; guarantee : never (((not mechanical_pedal_pos_L) and (not mechanical_pedal_pos_R) and (not brake_cmd_1) and (not brake_cmd_2) and (not brake_cmd_3) and (not brake_cmd_4) and (not brake_cmd_5) and (not brake_cmd_6) and (not brake_cmd_7) and (not brake_cmd_8))
and (wheel_braking_force_1>0 and
wheel_braking_force_2>0 and
wheel_braking_force_3>0 and
wheel_braking_force_4>0 and
wheel_braking_force_5>0 and
wheel_braking_force_6>0 and
wheel_braking_force_7>0 and
wheel_braking_force_8>0
) and (wheel_status_1=stopped and
wheel_status_2=stopped and
wheel_status_3=stopped and
wheel_status_4=stopped and
wheel_status_5=stopped and
wheel_status_6=stopped and
wheel_status_7=stopped and
wheel_status_8=stopped
)
and ground_speed>0
) ;
-- S18-WBS-0324 p 59
-- Inadvertent wheel braking of all wheels during
-- take off roll after V1
-- shall be extremely improbable
CONTRACT never_inadvertent_braking_of_all_wheels assume : true ; guarantee : never (((not mechanical_pedal_pos_L) and (not mechanical_pedal_pos_R) and (not brake_cmd_1) and (not brake_cmd_2) and
(not brake_cmd_3) and (not brake_cmd_4) and (not brake_cmd_5) and (not brake_cmd_6) and (not brake_cmd_7) and (not brake_cmd_8))
and (wheel_braking_force_1>0 and
wheel_braking_force_2>0 and
wheel_braking_force_3>0 and
wheel_braking_force_4>0 and
wheel_braking_force_5>0 and
wheel_braking_force_6>0 and
wheel_braking_force_7>0 and
wheel_braking_force_8>0
) and (ground_speed > 0 )) ;
-- Sanity check to evaluate the new behavior of the wheels
-- This contract is only used for debugging. It is commented in this release, as long as its refinement
-- ASSUMPTIONS
-- If there is a braking force on each wheel and the ground speed is greater than 1, then the ground speed is decreased of 1 at the next step
-- if there is no braking force on each wheel and the ground speed is greater than 1, then the ground speed remains the same at the next step
-- If the ground speed is lower than or equal to 1, then the ground speed equals 0 at the next step
-- Initially, if the ground speed is greater than zero, all the wheels are rolling
-- Initially, if the ground speed is equal to zero, all the wheels are stopped
-- GUARANTEE
-- The ground speed is equal to zero if and only if all the wheels are stopped
-- and ground speed is equal to zero implies that all the wheels are stopped at the next step
/--CONTRACT sanity_check
assume: always( (wheel_braking_force_1>0
and wheel_braking_force_2>0
and wheel_braking_force_3>0
and wheel_braking_force_4>0
and wheel_braking_force_5>0
and wheel_braking_force_6>0
and wheel_braking_force_7>0
and wheel_braking_force_8>0
and ground_speed>1)
implies next(ground_speed)=ground_speed - 1
)
and always( ((wheel_braking_force_1=0
or wheel_braking_force_2=0
or wheel_braking_force_3=0
or wheel_braking_force_4=0
or wheel_braking_force_5=0
or wheel_braking_force_6=0
or wheel_braking_force_7=0
or wheel_braking_force_8=0)
and ground_speed>1)
implies next(ground_speed)=ground_speed
)
and always(ground_speed<2 implies next(ground_speed)=0)
and (ground_speed>0 implies
(wheel_status_1=rolling
and wheel_status_2=rolling
and wheel_status_3=rolling
and wheel_status_4=rolling
and wheel_status_5=rolling
and wheel_status_6=rolling
and wheel_status_7=rolling
and wheel_status_8=rolling
))
and (ground_speed=0 implies
(wheel_status_1=stopped
and wheel_status_2=stopped
and wheel_status_3=stopped
and wheel_status_4=stopped
and wheel_status_5=stopped
and wheel_status_6=stopped
and wheel_status_7=stopped
and wheel_status_8=stopped
))
;
guarantee: always( ground_speed=0 implies
( wheel_status_1=stopped and
wheel_status_2=stopped and
wheel_status_3=stopped and
wheel_status_4=stopped and
wheel_status_5=stopped and
wheel_status_6=stopped and
wheel_status_7=stopped and
wheel_status_8=stopped
))
and always( ground_speed=0 implies
(next(wheel_status_1)=stopped and
next(wheel_status_2)=stopped and
next(wheel_status_3)=stopped and
next(wheel_status_4)=stopped and
next(wheel_status_5)=stopped and
next(wheel_status_6)=stopped and
next(wheel_status_7)=stopped and
next(wheel_status_8)=stopped
)
);--/
-- The number of wheel braked in the left side is equal to the number of brake command applied (electrical or mechanical command) without anti-skid
CONTRACT asymmetrical_left_braking assume : true ; guarantee : always ((((brake_cmd_1 or mechanical_pedal_pos_L) and not as_cmd_1) implies wheel_braking_force_1>0)
and (((brake_cmd_2 or mechanical_pedal_pos_L) and not as_cmd_2) implies wheel_braking_force_2>0)
and (((brake_cmd_5 or mechanical_pedal_pos_L) and not as_cmd_5) implies wheel_braking_force_5>0)
and (((brake_cmd_6 or mechanical_pedal_pos_L) and not as_cmd_6) implies wheel_braking_force_6>0)) ;
-- The number of wheel braked in the right side is equal to the number of brake command applied (electrical or mechanical command) without anti-skid
CONTRACT asymmetrical_right_braking assume : true ; guarantee : always ((((brake_cmd_3 or mechanical_pedal_pos_R) and not as_cmd_3) implies wheel_braking_force_3>0)
and (((brake_cmd_4 or mechanical_pedal_pos_R) and not as_cmd_4) implies wheel_braking_force_4>0)
and (((brake_cmd_7 or mechanical_pedal_pos_R) and not as_cmd_7) implies wheel_braking_force_7>0)
and (((brake_cmd_8 or mechanical_pedal_pos_R) and not as_cmd_8) implies wheel_braking_force_8>0)) ;
-- FIRST CONTRACT: CMD implies braking force
-- GUARANTEE:
-- For each wheel, if:
-- a brake command is applied
-- or a mechanical command is applied
-- and no antiskid command is applied
-- then:
-- a braking force is applied
--
-- SECOND CONTRACT: braking force implies CMD
-- GUARANTEE:
-- For each wheel, if there is braking force then:
-- a brake command is applied
-- or a mechanical command is applied
-- and no antiskid command is applied
CONTRACT cmd_implies_braking_wheel_1 assume : true ; guarantee : always (((brake_cmd_1 or mechanical_pedal_pos_L) and not as_cmd_1) implies wheel_braking_force_1>0
) ;
CONTRACT braking_wheel_1_implies_cmd assume : true ; guarantee : always (wheel_braking_force_1>0 implies ((brake_cmd_1 or mechanical_pedal_pos_L) and not as_cmd_1)) ;
CONTRACT cmd_implies_braking_wheel_2 assume : true ; guarantee : always (((brake_cmd_2 or mechanical_pedal_pos_L) and not as_cmd_2) implies wheel_braking_force_2>0
) ;
CONTRACT braking_wheel_2_implies_cmd assume : true ; guarantee : always (wheel_braking_force_2>0 implies ((brake_cmd_2 or mechanical_pedal_pos_L) and not as_cmd_2)) ;
CONTRACT cmd_implies_braking_wheel_3 assume : true ; guarantee : always (((brake_cmd_3 or mechanical_pedal_pos_R) and not as_cmd_3) implies wheel_braking_force_3>0
) ;
CONTRACT braking_wheel_3_implies_cmd assume : true ; guarantee : always (wheel_braking_force_3>0 implies ((brake_cmd_3 or mechanical_pedal_pos_R) and not as_cmd_3)) ;
CONTRACT cmd_implies_braking_wheel_4 assume : true ; guarantee : always (((brake_cmd_4 or mechanical_pedal_pos_R) and not as_cmd_4) implies wheel_braking_force_4>0
) ;
CONTRACT braking_wheel_4_implies_cmd assume : true ; guarantee : always (wheel_braking_force_4>0 implies ((brake_cmd_4 or mechanical_pedal_pos_R) and not as_cmd_4)) ;
CONTRACT cmd_implies_braking_wheel_5 assume : true ; guarantee : always (((brake_cmd_5 or mechanical_pedal_pos_L) and not as_cmd_5) implies wheel_braking_force_5>0
) ;
CONTRACT braking_wheel_5_implies_cmd assume : true ; guarantee : always (wheel_braking_force_5>0 implies ((brake_cmd_5 or mechanical_pedal_pos_L) and not as_cmd_5)) ;
CONTRACT cmd_implies_braking_wheel_6 assume : true ; guarantee : always (((brake_cmd_6 or mechanical_pedal_pos_L) and not as_cmd_6) implies wheel_braking_force_6>0
) ;
CONTRACT braking_wheel_6_implies_cmd assume : true ; guarantee : always (wheel_braking_force_6>0 implies ((brake_cmd_6 or mechanical_pedal_pos_L) and not as_cmd_6)) ;
CONTRACT cmd_implies_braking_wheel_7 assume : true ; guarantee : always (((brake_cmd_7 or mechanical_pedal_pos_R) and not as_cmd_7) implies wheel_braking_force_7>0
) ;
CONTRACT braking_wheel_7_implies_cmd assume : true ; guarantee : always (wheel_braking_force_7>0 implies ((brake_cmd_7 or mechanical_pedal_pos_R) and not as_cmd_7)) ;
CONTRACT cmd_implies_braking_wheel_8 assume : true ; guarantee : always (((brake_cmd_8 or mechanical_pedal_pos_R) and not as_cmd_8) implies wheel_braking_force_8>0
) ;
CONTRACT braking_wheel_8_implies_cmd assume : true ; guarantee : always (wheel_braking_force_8>0 implies ((brake_cmd_8 or mechanical_pedal_pos_R) and not as_cmd_8)) ;
wheel_brake_1
Component description:
Name
Type
Notes
wheel_brake_1
WheelBrake
Input ports:
Name
Type
Range
hyd_pressure_in
int
[0, 10]
Output ports:
Name
Type
Range
braking_force
int
[0, 10]
Contracts:
-- The outgoing braking force is greater than zero if there is an hydraulic pressure incoming in the brake
-- NOTE: if the behavior of the fuse is defined as a cutoff pipe, the property in the guarantee must be an implication
CONTRACT supply_braking_force assume : true ; guarantee : always ((braking_force>0) iff (hyd_pressure_in>0)) ;
wheel_brake_2
Component description:
Name
Type
Notes
wheel_brake_2
WheelBrake
Input ports:
Name
Type
Range
hyd_pressure_in
int
[0, 10]
Output ports:
Name
Type
Range
braking_force
int
[0, 10]
Contracts:
-- The outgoing braking force is greater than zero if there is an hydraulic pressure incoming in the brake
-- NOTE: if the behavior of the fuse is defined as a cutoff pipe, the property in the guarantee must be an implication
CONTRACT supply_braking_force assume : true ; guarantee : always ((braking_force>0) iff (hyd_pressure_in>0)) ;
wheel_brake_3
Component description:
Name
Type
Notes
wheel_brake_3
WheelBrake
Input ports:
Name
Type
Range
hyd_pressure_in
int
[0, 10]
Output ports:
Name
Type
Range
braking_force
int
[0, 10]
Contracts:
-- The outgoing braking force is greater than zero if there is an hydraulic pressure incoming in the brake
-- NOTE: if the behavior of the fuse is defined as a cutoff pipe, the property in the guarantee must be an implication
CONTRACT supply_braking_force assume : true ; guarantee : always ((braking_force>0) iff (hyd_pressure_in>0)) ;
wheel_brake_4
Component description:
Name
Type
Notes
wheel_brake_4
WheelBrake
Input ports:
Name
Type
Range
hyd_pressure_in
int
[0, 10]
Output ports:
Name
Type
Range
braking_force
int
[0, 10]
Contracts:
-- The outgoing braking force is greater than zero if there is an hydraulic pressure incoming in the brake
-- NOTE: if the behavior of the fuse is defined as a cutoff pipe, the property in the guarantee must be an implication
CONTRACT supply_braking_force assume : true ; guarantee : always ((braking_force>0) iff (hyd_pressure_in>0)) ;
wheel_brake_5
Component description:
Name
Type
Notes
wheel_brake_5
WheelBrake
Input ports:
Name
Type
Range
hyd_pressure_in
int
[0, 10]
Output ports:
Name
Type
Range
braking_force
int
[0, 10]
Contracts:
-- The outgoing braking force is greater than zero if there is an hydraulic pressure incoming in the brake
-- NOTE: if the behavior of the fuse is defined as a cutoff pipe, the property in the guarantee must be an implication
CONTRACT supply_braking_force assume : true ; guarantee : always ((braking_force>0) iff (hyd_pressure_in>0)) ;
wheel_brake_6
Component description:
Name
Type
Notes
wheel_brake_6
WheelBrake
Input ports:
Name
Type
Range
hyd_pressure_in
int
[0, 10]
Output ports:
Name
Type
Range
braking_force
int
[0, 10]
Contracts:
-- The outgoing braking force is greater than zero if there is an hydraulic pressure incoming in the brake
-- NOTE: if the behavior of the fuse is defined as a cutoff pipe, the property in the guarantee must be an implication
CONTRACT supply_braking_force assume : true ; guarantee : always ((braking_force>0) iff (hyd_pressure_in>0)) ;
wheel_brake_7
Component description:
Name
Type
Notes
wheel_brake_7
WheelBrake
Input ports:
Name
Type
Range
hyd_pressure_in
int
[0, 10]
Output ports:
Name
Type
Range
braking_force
int
[0, 10]
Contracts:
-- The outgoing braking force is greater than zero if there is an hydraulic pressure incoming in the brake
-- NOTE: if the behavior of the fuse is defined as a cutoff pipe, the property in the guarantee must be an implication
CONTRACT supply_braking_force assume : true ; guarantee : always ((braking_force>0) iff (hyd_pressure_in>0)) ;
wheel_brake_8
Component description:
Name
Type
Notes
wheel_brake_8
WheelBrake
Input ports:
Name
Type
Range
hyd_pressure_in
int
[0, 10]
Output ports:
Name
Type
Range
braking_force
int
[0, 10]
Contracts:
-- The outgoing braking force is greater than zero if there is an hydraulic pressure incoming in the brake
-- NOTE: if the behavior of the fuse is defined as a cutoff pipe, the property in the guarantee must be an implication
CONTRACT supply_braking_force assume : true ; guarantee : always ((braking_force>0) iff (hyd_pressure_in>0)) ;