Daily Rambam (3 Chapters) · Techie Talmid · On-Ramp
Mishneh Torah, Sales 28-30
Alright, fellow data-structures enthusiasts and Talmudic explorers! Buckle up, because we're about to dive deep into the fascinating world of Halacha and translate it into the elegant logic of systems thinking. Our mission today is to parse Mishneh Torah, Laws of Sales, Chapters 28-30, and see how Rambam's crystalline rulings can be modeled as algorithms.
Problem Statement – The "Bug Report"
Our core issue stems from ambiguity in land sales, specifically when the stated measure of land doesn't perfectly match the physical reality. This is like a software bug where the user input (the seller's description) doesn't accurately reflect the system's internal state (the actual plot of land). The challenge is to define clear parameters for when discrepancies are acceptable, when they necessitate adjustments in price or property, and when the entire transaction becomes questionable.
Consider the initial premise: "I am selling you a parcel of earth fit to sow a kor." This is our baseline metric, a unit of measure for agricultural land. But what happens when this land is not a perfect, uniform surface? The sugya (Talmudic passage) grapples with features like hollows and rocks. Are these integral to the plot, or are they "errors" to be excluded?
The complexity arises because the definition of "fit to sow a kor" itself has an implicit tolerance. If the seller uses more precise language, like "as measured with a rope," the tolerance shrinks. If they use vaguer terms, like "approximately," the tolerance expands. We need to build a robust parser for these linguistic inputs that translates into precise contractual obligations.
Full Experience in the App
Listen. Chat. Go deeper.
Audio playback, interactive chevruta, Hebrew tools, and every daily learning track — only in Derekh Learning.
Text Snapshot
Here are the key lines we'll be dissecting, with their Sefaria anchors for easy reference:
- MT Sales 28:1: "When a person tells a colleague: 'I am selling you a parcel of earth fit to sow a *kor.' If the land contains small hollows that are ten handbreadths deep even if they do not contain water, or rocks that are ten handbreadths high, they are not included in the above measure." (Anchor: 28.1.1)
- MT Sales 28:1: "The purchaser acquires these rocks and hollows as part of the parcel of land fit to sow a kor without paying for them." (Anchor: 28.1.3)
- MT Sales 28:1: "If the hollows or the rocks are smaller than ten handbreadths, they are measured together with the remainder of the field." (Anchor: 28.1.4)
- MT Sales 28:2: "When does the above apply? When together, the area of all the rocks and the hollows was no more than the area necessary to sow four kabbim and was contained within an area where at least five kabbim could be sown, and was contained within the majority of the field." (Anchor: 28.2.1)
- MT Sales 28:2: "If the area of the rocks and the hollows is more than the area necessary to sow four kabbim that area is very spread out, or it is contained within a lesser area than one in which five kabbim could be sown, they are not included in the measure of the field, even if they are not ten handbreadths high or deep." (Anchor: 28.2.2)
- MT Sales 28:3: "If there is one large rock, even if it is only as large as the area necessary to sow a quarter of a kav, it is not included in the measurement." (Anchor: 28.3.1)
- MT Sales 28:3: "If a rock is next to the border of a field, even if it is very small, it is not included in the measurement." (Anchor: 28.3.2)
- MT Sales 28:4: "When the seller tells the purchaser: 'I am selling you a parcel of earth like the area fit to sow a kor,' different rules apply. Even if it has hollows that are ten or more handbreadths deep or stones that are ten or more handbreadths high, they are included in its measure." (Anchor: 28.4.1)
- MT Sales 28:5: "When a person tells a colleague: 'I am selling you a parcel of earth fit to sow a kor, as measured with a rope,' the measurement must be exact." (Anchor: 28.5.1)
- MT Sales 28:6: "When the seller tells the purchaser: 'I am selling you a parcel of earth fit to sow a kor,' it is as if he said 'approximately a parcel of earth fit to sow a kor, perhaps more, perhaps less.'" (Anchor: 28.6.1)
- MT Sales 28:7: "If the measure was one twenty-fourth less - i.e., a fourth of a kav, for each parcel of earth fit to sow a se'ah, it is considered to be within the terms of the original agreement." (Anchor: 28.7.1)
- MT Sales 28:10: "When a person sells a field and it becomes a garden... or he sells a garden and it becomes a field... there is a doubt whether the laws are determined according to its state at the time of the sale or its immediate state." (Anchor: 28.10.1-3)
- MT Sales 28:11: "When a person tells a colleague: 'I am selling you a parcel of earth fit to sow a kor, as measured with a rope, perhaps more, perhaps less,' or if he says: 'I am selling you a parcel of earth fit to sow a kor, perhaps more, perhaps less, as measured with a rope,' one should follow the less committing of the implications." (Anchor: 28.11.1)
Flow Model – Decision Tree Logic
Let's visualize the core logic for handling natural features within a sale of "a parcel of earth fit to sow a kor." Think of this as a flowchart for the land parcel validation process.
- START: Evaluate Land Parcel
- INPUT: Seller's statement, physical land characteristics.
- QUERY 1: Seller's Statement Type?
- CASE A: "Fit to sow a kor" (Vague Measure):
- QUERY 1.1: Are there hollows/rocks?
- YES:
- QUERY 1.1.1: Depth/Height ≥ 10 handbreadths?
- YES:
- ACTION: Exclude from measurement. Purchaser acquires them without extra cost. (28.1.1, 28.1.3)
- NO (Depth/Height < 10 handbreadths):
- TRANSFORM: Treat as part of the field. Proceed to further validation. (28.1.4)
- GO TO QUERY 1.2
- YES:
- QUERY 1.1.1: Depth/Height ≥ 10 handbreadths?
- NO:
- ACTION: Measure as is.
- GO TO END
- YES:
- QUERY 1.2: (For features < 10 handbreadths) Validation Check:
- Condition A: Total area of features ≤ 4 kabbim.
- Condition B: Features contained within an area that can sow ≥ 5 kabbim.
- Condition C: Features contained within the majority of the field.
- IF (A AND B AND C) are TRUE:
- ACTION: Features are included in the kor measure. Sale is as stated. (28.2.1)
- GO TO END
- ELSE (Any of A, B, C are FALSE, or features are "very spread out", or contained in < 5 kabbim area):
- ACTION: Exclude from measurement. Purchaser acquires them without extra cost. (28.2.2)
- GO TO END
- Edge Case Check (MT 28:3):
- IF: Single large rock (even < 1/4 kav area) OR rock at border (even small):
- ACTION: Exclude from measurement. (28.3.1, 28.3.2)
- GO TO END
- IF: Single large rock (even < 1/4 kav area) OR rock at border (even small):
- QUERY 1.1: Are there hollows/rocks?
- CASE B: "Like the area fit to sow a kor" (Comparative Measure):
- ACTION: All features (even >10 handbreadths) are included in the measure. (28.4.1)
- GO TO END
- CASE C: "Fit to sow a kor, as measured with a rope" (Exact Measure):
- ACTION: Exact measurement required. Any deviation requires price adjustment. (28.5.1)
- GO TO END
- CASE D: "Fit to sow a kor, approximately" (Approximate Measure):
- Tolerance Check:
- IF: Deviation is ≤ 1/24th (1/4 kav per se'ah)
- ACTION: Within agreement. No adjustment needed. (28.7.1)
- GO TO END
- ELSE (Deviation > 1/24th):
- ACTION: Calculate adjustment based on excess/deficit. (28.7.2)
- GO TO END
- IF: Deviation is ≤ 1/24th (1/4 kav per se'ah)
- Tolerance Check:
- CASE E: "Fit to sow a kor, as measured with a rope, perhaps more, perhaps less" OR "Fit to sow a kor, perhaps more, perhaps less, as measured with a rope" (Mixed/Conflicting Statements):
- ACTION: Follow the less committing implication (i.e., the one that favors the purchaser if there's a deficit, or the seller if there's an excess, but the primary rule is purchaser protection when in doubt). This is the "burden of proof" principle. (28.11.1)
- GO TO END
- CASE A: "Fit to sow a kor" (Vague Measure):
- END: Transaction Status Determined
Two Implementations – Rishon vs. Acharon
Let's compare two distinct approaches to implementing this logic, drawing parallels to how early commentators (Rishonim) and later ones (Acharonim) might tackle a complex legal scenario.
Algorithm A: The Rishon's Foundational Approach (MT 28:1-3)
This algorithm focuses on the foundational principle of what constitutes a deviation from the stated measure, particularly for the basic "fit to sow a kor" statement. It's like a Rishon laying down the core rules, establishing the fundamental parameters.
Algorithm Rishon_Sales_Parser(seller_statement, land_features):
# Initialize state variables
measure_unit = "kor"
features_included = False
adjustment_required = False
adjustment_amount = 0
# Parse seller statement to determine statement type
statement_type = analyze_statement(seller_statement)
if statement_type == "vague_kor_measure":
# Default for vague statements
if not land_features:
features_included = True # No features, so it's all part of the measure
else:
# Process each feature (rock, hollow)
for feature in land_features:
if feature.depth_or_height >= 10:
# Deep hollows/high rocks are excluded from the core measure
# Purchaser gets them but doesn't pay extra for them
pass # They are "free" additions to the plot
else:
# Shallow features are blended into the land
# Need to check if they affect the overall measure significantly
# This requires aggregation and contextual checks
pass # Defer to the aggregation logic below
# Aggregate shallow features and perform validation
total_shallow_feature_area = sum(f.area for f in land_features if f.depth_or_height < 10)
area_for_sowing_shallow_features = calculate_sowable_area_of_features(land_features) # Complex calculation needed here
# Check conditions from MT 28:2.1
condition_A = (total_shallow_feature_area <= 4 * KABBIM_PER_KOR)
condition_B = (area_for_sowing_shallow_features >= 5 * KABBIM_PER_KOR) # Area *within which* these features lie
condition_C = is_majority_of_field(land_features) # Features are in the majority part of the field
if condition_A and condition_B and condition_C:
# If conditions met, shallow features are considered part of the core measure
features_included = True
else:
# If conditions not met, or features are "very spread out" or in a small sowing area,
# they are excluded from the core measure.
features_included = False # Explicitly not part of the paid measure
# Apply specific edge cases from MT 28:3
if any(f.is_single_large_rock or f.is_at_border for f in land_features):
# These are always excluded from the core measure if they are the primary feature
# This implies a re-evaluation if they were previously considered included.
# For simplicity here, we assume this logic applies if these exist.
features_included = False # Reaffirm exclusion for these specific edge cases
elif statement_type == "comparative_like_kor_measure":
# All features are implicitly included in the measure
features_included = True
adjustment_required = False # No adjustment for features themselves
elif statement_type == "exact_rope_measure":
# Exact measure is critical. Any deviation triggers adjustment.
# This logic is handled by the deviation calculation later, not feature exclusion directly.
pass # Handled by deviation logic
elif statement_type == "approximate_kor_measure":
# Tolerance is built into the agreement.
# Handled by deviation logic based on 1/24th
pass # Handled by deviation logic
elif statement_type == "mixed_rope_approx":
# Follow the less committing implication. This implies a default to purchaser protection.
# This is a meta-rule for how to interpret conflicting statements.
pass # Handled by meta-interpretation logic
# --- Aggregation and Final Output ---
# This is where the actual sale value is determined based on the inclusion/exclusion of features.
# If features_included is True, the core 'kor' measure is met by the stated land.
# If features_included is False, the core 'kor' measure is met by the land *minus* the excluded features.
# The excluded features are still part of the physical plot, but not part of the paid quantity.
return {
"features_included_in_measure": features_included,
"adjustment_required": adjustment_required, # Placeholder for exact/approximate cases
"adjustment_amount": adjustment_amount # Placeholder for exact/approximate cases
}
# Helper functions (simplified for illustration)
def analyze_statement(statement):
if "as measured with a rope" in statement and ("perhaps more" in statement or "perhaps less" in statement):
return "mixed_rope_approx"
elif "as measured with a rope" in statement:
return "exact_rope_measure"
elif "approximately" in statement:
return "approximate_kor_measure"
elif "like the area fit to sow a kor" in statement:
return "comparative_like_kor_measure"
elif "fit to sow a kor" in statement:
return "vague_kor_measure"
else:
return "unknown"
def calculate_sowable_area_of_features(features):
# Complex geometric and agricultural calculation based on feature type and depth/height
pass
def is_majority_of_field(features):
# Logic to determine if the area occupied by features is in the majority part of the field
pass
KABBIM_PER_KOR = 30 # Example value
Key Characteristics of Algorithm A:
- Modular: It breaks down the problem into distinct checks.
- Hierarchical: It prioritizes the depth/height of features before checking area and distribution.
- Foundational: It establishes the core rules for inclusion/exclusion of natural features for the most common scenario.
- Limited Scope: It doesn't fully detail the adjustment mechanisms for inexact measures, deferring that to later stages or other algorithms.
Algorithm B: The Acharon's Refined System (MT 28:5-11)
This algorithm tackles the more nuanced cases: exact measurements, approximations, and conflicting statements. It's like an Acharon building upon the Rishon's foundation, creating more sophisticated error handling and adjustment protocols.
Algorithm Acharon_Sales_Adjuster(seller_statement, actual_area, stated_area, sale_price, time_of_sale, time_of_restitution):
# Initialize adjustment parameters
adjustment_type = "none" # 'none', 'money', 'land'
adjustment_value = 0 # Monetary value or land area
price_per_unit_area = sale_price / stated_area # Assumes stated_area is the target
deviation_percentage = abs(actual_area - stated_area) / stated_area
statement_type = analyze_statement(seller_statement) # Re-using from Algorithm A
if statement_type == "exact_rope_measure":
# Exact measurement requires precise adjustment
if actual_area < stated_area:
# Deficit: Purchaser pays less
adjustment_type = "money"
adjustment_value = price_per_unit_area * (stated_area - actual_area)
elif actual_area > stated_area:
# Excess: Seller returns value or land
adjustment_type = "money" # Default to money if not specified otherwise
adjustment_value = price_per_unit_area * (actual_area - stated_area)
# Additional logic for returning land if beneficial (MT 28:8.2)
elif statement_type == "approximate_kor_measure":
# Tolerance of 1/24th (1/4 kav per se'ah)
# Let's assume a standard 'kor' is X se'ah for this calculation
# For simplicity, let's use the 1/4 kav threshold directly
tolerance_threshold = 1/24 # Represents 1/4 kav per se'ah, scaled
if deviation_percentage <= tolerance_threshold:
# Within tolerance, no adjustment
adjustment_type = "none"
else:
# Outside tolerance, calculate adjustment
difference = actual_area - stated_area
if difference < 0: # Deficit
adjustment_type = "money"
adjustment_value = price_per_unit_area * abs(difference)
else: # Excess
# Complex rules for restitution of excess land (MT 28:7.2, 28.8, 28.9)
excess_area = difference
# MT 28:8.1: If excess < 9 kabbim (field) or 1/2 kav (garden), return % of price
# MT 28:8.2: If near seller's field, return land itself
# MT 28:8.3: If excess >= 9 kabbim, return 1/4 kav per se'ah, then negotiate remainder
# Simplified logic for demonstration:
if excess_area < NINE_KABBIM_FIELD or excess_area < HALF_KAV_GARDEN:
adjustment_type = "money"
adjustment_value = price_per_unit_area * excess_area # Proportional to value at sale
# Need to consider land value change (MT 28:9)
if land_value_increased(time_of_sale, time_of_restitution):
adjustment_value = price_per_unit_area * excess_area # Original price
else: # Land value decreased
adjustment_value = price_per_unit_area * excess_area # Buyer pays original price
else:
# More complex restitution, potentially returning land or specific portions
adjustment_type = "complex_land_or_money"
adjustment_value = excess_area # Placeholder for detailed calculation
# This would involve calculating the 'fourths of a kav' and the remainder.
elif statement_type == "mixed_rope_approx":
# Follow the less committing implication (purchaser protection in doubt)
# This means if there's a potential deficit, it's treated as a deficit.
# If there's a potential excess, it's treated as potentially less than stated.
# This acts as a default parameter for the other logic branches.
pass # This modifies how the above conditions are interpreted, favoring purchaser.
# MT 28:10 - State Change (Field to Garden, etc.)
# This introduces a doubt about which measurement standard (field vs. garden) to use.
# This would require a separate sub-routine or a flag to indicate this ambiguity.
# For this model, we assume the correct standard is identified before this adjustment stage.
return {
"adjustment_type": adjustment_type,
"adjustment_value": adjustment_value,
"deviation_percentage": deviation_percentage
}
# Helper functions (simplified)
def analyze_statement(statement):
# (Same as in Algorithm A)
if "as measured with a rope" in statement and ("perhaps more" in statement or "perhaps less" in statement):
return "mixed_rope_approx"
elif "as measured with a rope" in statement:
return "exact_rope_measure"
elif "approximately" in statement:
return "approximate_kor_measure"
elif "like the area fit to sow a kor" in statement:
return "comparative_like_kor_measure"
elif "fit to sow a kor" in statement:
return "vague_kor_measure"
else:
return "unknown"
def land_value_increased(t1, t2):
# Placeholder for market analysis logic
return True
NINE_KABBIM_FIELD = 9 # Example value
HALF_KAV_GARDEN = 0.5 # Example value
Key Characteristics of Algorithm B:
- Quantitative: Focuses on numerical deviations and their financial or physical consequences.
- Rule-Based Adjustment: Implements specific formulas and thresholds for restitution.
- Context-Aware: Incorporates factors like the time of sale and restitution to handle changing land values.
- Handles Ambiguity: Addresses mixed statements by applying a default principle of purchaser protection.
- Modular Extension: Could be extended to handle the state change issue (MT 28:10) by passing an additional parameter indicating the current state of the land.
Edge Cases – Input Validation Failures
These are the peculiar inputs that would cause a naive parser to throw an error or produce an unexpected output. They highlight the need for robust error handling and specific exception logic.
Input: Seller states, "I am selling you a parcel of earth fit to sow a kor." The land is a perfect, flat square. However, the entire parcel is covered by a single, enormous rock, the size of a kor itself, but less than 10 handbreadths high.
- Naïve Logic Failure: The rock is less than 10 handbreadths high, so it should be measured with the field (MT 28:1.4). The entire field is a rock, so it's "fit to sow a kor". The sale is valid as is.
- Expected Output (Correct Logic): The sugya (MT 28:3.1) states, "If there is one large rock, even if it is only as large as the area necessary to sow a quarter of a kav, it is not included in the measurement." This implies that any single large rock, irrespective of its height relative to the 10-handbreadth rule for multiple small rocks, is problematic if it defines the entire parcel. In this extreme case, the purchaser is buying a "parcel of earth" that is entirely rock. The seller must prove it's still considered "earth" in a way that includes the rock without extra cost (MT 28:1.3), which is highly unlikely for a massive rock that is the entire parcel. The more likely outcome is that the seller must demonstrate that this rock is still considered "earth" in a way that it's included without extra payment (MT 28:1.3), or the sale might be voidable if it's not considered "earth" at all, or if the rock's presence makes it unfit for sowing. The crucial point is MT 28:3.1's specific exclusion of one large rock from measurement.
Input: Seller states, "I am selling you a parcel of earth fit to sow a kor, as measured with a rope, perhaps more, perhaps less." The land is measured and found to be exactly 1/23rd less than a kor.
- Naïve Logic Failure: The statement includes "as measured with a rope" (suggesting exactness) and "perhaps more, perhaps less" (suggesting approximation). A naïve system might get stuck in a loop or error out due to conflicting modifiers. It might default to the "exact measure" rule, leading to an adjustment, or the "approximate measure" rule.
- Expected Output (Correct Logic): MT 28:11.1 addresses precisely this scenario: "one should follow the less committing of the implications." The "as measured with a rope" implies exactness, while "perhaps more, perhaps less" implies approximation. The less committing of these is the approximation. Therefore, we apply the approximation rules. MT 28:7.1 states that a deviation of "one twenty-fourth less - i.e., a fourth of a kav, for each parcel of earth fit to sow a se'ah" is within the terms. A deviation of 1/23rd is more than 1/24th. Thus, an adjustment is required. The purchaser would calculate the value of the missing 1/23rd and deduct it from the price.
Refactor – Minimal Change for Clarity
The current structure of MT 28:2.1 and 28.2.2, while accurate, could benefit from a clearer conditional flow. The conditions for inclusion of shallow features are quite specific.
Original Logic (Conceptual): "If the area of rocks and hollows is NOT MORE THAN 4 kabbim, AND is contained within an area that CAN sow AT LEAST 5 kabbim, AND is contained within the MAJORITY of the field, THEN INCLUDE. ELSE, EXCLUDE."
Refactor Proposal: We can rephrase the condition for exclusion to be more explicit, making the "happy path" for inclusion clearer.
Proposed Change: In MT 28:2.1, instead of stating the positive condition for inclusion, we can structure it as:
"When does the above [excluding deep/high features from the measure] apply? Only if all the following are true:
- The total area of all shallow rocks and hollows is no more than the area necessary to sow four kabbim.
- These shallow features are contained within an area where at least five kabbim could be sown.
- These shallow features are contained within the majority of the field.
If ANY of these conditions are FALSE, then the shallow rocks and hollows are not included in the measure of the field, even if they are not ten handbreadths high or deep."
Impact: This refactoring clarifies the default state. The default is exclusion of features unless the specific, multi-part condition for inclusion is met. This mirrors the principle of hamotzi (the one making the claim, here the seller claiming the land is fully usable) needing to prove their claim, by demonstrating the land meets these specific positive criteria for full inclusion. It sharpens the "bug report" – the system expects a clean plot; deviations need specific justification for inclusion.
Takeaway
By translating these sugyot into systems thinking, we see that Rambam has built an incredibly sophisticated rule-engine for land transactions. The language used by the seller acts as an input parameter, and the physical characteristics of the land are the system state. The Halacha then defines a series of algorithms that process these inputs and states to determine the validity of the sale, the required adjustments, and the rights and obligations of the parties.
The progression from vague statements to exact measurements, and the intricate rules for handling deviations and natural features, are akin to version control in software development. Early versions (vague statements) have higher tolerances for error, while later versions (exact measurements) demand precision. The inclusion of edge cases and specific rules for ambiguous phrasing demonstrates a robust design, anticipating potential failure modes and providing deterministic outputs. It’s a beautiful testament to how logical structures can be applied to even the most practical and ancient of human interactions. We've gone from a "bug report" to a fully validated system architecture!
derekhlearning.com