Component Architecture Root

Component description:

Name Type Notes
Component Architecture Root





wbs_arch1

Component description:

Name Type Notes
wbs_arch1 wbs_arch1


Input ports:

Name Type Range
mechanical_pedal_pos_L boolean
mechanical_pedal_pos_R boolean
ground_speed int [0, 10]
power boolean
pump_power boolean
hydraulic_supply int [0, 10]

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]
control_system_validity boolean

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 : 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)) ;