Create a rule model (vocabulary, rule sheets and test cases) to implement these rules (which were assembled using RuleXpress)

1. The hold of a ship must be considered clean if the hold does not contain remainders of cargo. 
2. An unloaded ship may only enter a Dutch port if the ship complies with the requirements of the Inspection for unloaded ships. 
3. A ship must comply with the requirements of the Inspection for unloaded ships if the ship complies with all of the following:
- the ship meets the safety requirements for unloaded ships
- the ship has a certificate of registry that is valid. 
4. A ship must be categorized as large if the total length of the ship is at least 80 meters. 
5. A ship's hold contains remainders of cargo if the residual cargo measurement is higher than 0.5 mg dry weight per cm². 
6. A ship only meets the safety requirements for unloaded ships if the ship complies with at least one of the following:
- the ship meets the safety requirements for small unloaded ships
- the ship meets the safety requirements for large unloaded ships. 
7. A ship only meets the safety requirements for large unloaded ships if the ship complies with all of the following:
- the ship is categorized as large
- the hold of the ship is clean
- the hold of the ship is double hulled. 
8. A ship only meets the safety requirements for small unloaded ships if the ship complies with all of the following:
- the ship is categorized as small
- the hold of the ship is clean. 
9. A ship must be categorized as small if the total length of the ship is less than 80 meters. 
10. A ship's certificate of registry must be considered valid if the date up to which the registration is valid of the certificate of registry is after the current date.

The attached PDF shows a refactored solution that is an improvement over the "As Specified" solution