lemma 0.9.2

A pure, declarative language for business rules.
spec unit_conversions
"""
Duration Conversions and Comparisons

This example demonstrates:
- Duration unit types
- Automatic duration conversions
- Comparisons with durations
- Duration-aware arithmetic
"""

uses lemma units

data container_volume    : 5
data contract_term       : 52 week
data data_size           : 500
data distance            : 100
data package_weight      : 25
data processing_duration : 90 minute
data project_length      : 14 day
data review_period       : 2 hour
data temperature         : 20

rule duration_hours:
  processing_duration as hour

rule duration_seconds:
  processing_duration as second

rule review_in_minutes:
  review_period as minute

rule project_in_hours:
  project_length as hour

rule contract_in_days:
  contract_term as day

rule weight_limit:
  50

rule is_overweight:
  package_weight > weight_limit

rule is_long_distance:
  distance > 50

rule total_distance:
  distance + 25

rule total_distance_doubled:
  total_distance * 2

rule is_comfortable_temperature:
  temperature >= 18 and temperature <= 24

rule needs_compression:
  data_size > 100

rule is_quick_processing:
  processing_duration < 2 hour

rule is_short_project:
  project_length < 30 day

rule combined_duration:
  processing_duration + review_period

rule long_term:
  combined_duration > 3 hour