Daf Yomi · Techie Talmid · On-Ramp

Zevachim 74

On-RampTechie TalmidNovember 27, 2025

Greetings, fellow data-devotees and code-curious colleagues! Your resident sugya-synthesizer is back, diving deep into the fascinating algorithms of Jewish law. Today, we're debugging a particularly thorny problem from Zevachim 74a, where mixed data types, lost packets, and nested uncertainties create a thrilling challenge for our halachic operating system. Get ready to refactor your understanding of bitul and teliyah!


Problem Statement

Imagine a system designed to manage various "item categories" – some permitted for use (Permitted), others strictly prohibited (Prohibited). The core bug report we're tackling is an UncertaintyException: what happens when a Prohibited item gets accidentally commingled with a large batch of Permitted items, making individual identification impossible? This isn't just a simple if/else statement; the system needs to determine the status of the entire batch, especially if one item subsequently "leaves" the system (e.g., gets lost) or if the batch itself undergoes further mixing.

Our system has several built-in "uncertainty resolution protocols":

  • NullificationInMajority(Prohibited, Permitted, Ratio): A function that might declare the Prohibited item nullified if Permitted items are sufficiently numerous.
  • PresumeLostIsProhibited(Mixture, LostItem) (aka Teliyah): An algorithm that, under certain conditions, presumes the "lost packet" was the Prohibited one, thereby clearing the remaining Mixture.
  • CompoundUncertaintyProtocol(Uncertainty1, Uncertainty2) (aka Sfeik Sfeika): A rule that might permit an item if there are two independent layers of doubt about its prohibited status.

The challenge lies in the complex interplay of these protocols, especially when dealing with high-security Prohibited data types like Avodah Zarah (idol worship) or Teruma (sacred produce), each with its own unique "access control list" and "security vulnerabilities."


Text Snapshot

Let's pull up the relevant code snippets from Zevachim 74a:

  • Line 1: Initial Glimpse of PresumeLostIsProhibited (Mishna 77b via R' Eliezer):

    And we learned in a mishna (77b) that in a case where sacrificial portions from unblemished burnt offerings became mixed with sacrificial portions from blemished burnt offerings, which are disqualified, Rabbi Eliezer says: If the head of one of them was sacrificed on the altar before they knew of the blemish, all the heads should be sacrificed, as it is assumed that the head of the disqualified animal was the one already sacrificed on the altar.

  • Line 2: Rav's PresumeLostIsProhibited Implementation for Avodah Zarah:

    Rav Naḥman says that Rava bar Avuh says that Rav says: With regard to a ring used in idol worship, from which it is prohibited to derive benefit and which is not nullified even in a ratio of one in one hundred, that was intermingled with one hundred permitted rings, and subsequently one of them fell into the Great Sea [Yam HaGadol], they are all permitted. The reason is that we say: That ring that fell into the Great Sea is the prohibited ring.

  • Line 3: Rava's Objection & Rav Naḥman's k'R' Eliezer Patch:

    Rava raised an objection to Rav Naḥman from the mishna: With regard to all the offerings that were intermingled with animals from which deriving benefit is prohibited, even if the ratio is one in ten thousand, they all must die. [...] Rav Naḥman said to Rava: Rav states his ruling in accordance with the opinion of Rabbi Eliezer...

  • Line 4: R' Elazar's two-by-two Refinement:

    Rava asked Rav Naḥman: But doesn’t Rabbi Elazar say: Rabbi Eliezer permitted the sacrifice of all the heads only if they were sacrificed two by two...? Rav Naḥman said to Rava: I too am saying that Rav permits the rings only if they are sold two at a time...

  • Line 5: Rav's MajorityLocation Algorithm:

    Rav says: With regard to a ring used in idol worship that was intermingled with one hundred permitted rings, and then forty of them became separated to one place, and the other sixty became separated to another place... if one ring from the group of forty became separated... it does not render them prohibited. But if one ring from the other sixty became separated... it renders them prohibited.

  • Line 6: Shmuel's HighSecurityOverride for Avodah Zarah:

    When I said this ruling in the presence of Shmuel, [...] he said to me: Disregard this halakha with regard to the case of idol worship, as this prohibition is so stringent that its uncertainty and its compound uncertainty are prohibited forever...

  • Line 7: Baraita Challenging Shmuel's HighSecurityOverride on CompoundUncertainty:

    An uncertainty of idol worship is prohibited, but its compound uncertainty is permitted. How so? With regard to a cup used in idol worship that fell into a storeroom full of cups, they are all prohibited. If one of these cups separated from the rest and fell into a group of ten thousand other cups, and from that ten thousand cups a single cup fell into ten thousand other cups, they are permitted.

  • Line 8: Reish Lakish's PresumeLostIsProhibited for Teruma (Noticeable Loss):

    Reish Lakish says: In the case of a barrel of teruma produce, [...] that was intermingled with one hundred barrels of non-sacred produce, [...] And if one of these barrels fell into the Dead Sea, all the barrels are permitted, as we say: Since there is that barrel that fell, the assumption is that it is the prohibited barrel that fell.

  • Line 9: Distinguishing Avodah Zarah vs. Teruma for PresumeLostIsProhibited:

    As, if the halakha were taught only from the ruling of Rav Naḥman, I would say that this matter applies only with regard to a mixture involving an item of idol worship, which has no permitting factors... But in the case of teruma, which has permitting factors, perhaps the mixture should not be permitted... And conversely, if the halakha was taught only from the ruling of Reish Lakish, I would say that the halakha is lenient only in the case of a barrel of teruma, as its falling is noticeable... But with regard to a ring, whose falling is not noticeable, perhaps the rest of the rings should not be permitted.


Flow Model

Let's visualize the decision flow for an item in a mixture, focusing on the Prohibited status resolution:

graph TD
    A[Start: Prohibited Item in Mixture?] --> B{Is Prohibited Item Known/Identifiable?};
    B -- Yes --> C[Remove/Handle Prohibited Item; Remaining Permitted];
    B -- No --> D{What Type of Prohibition?};
    D -- Avodah Zarah (AZ) --> E{Event: Item Lost?};
    D -- Teruma --> F{Event: Item Lost?};
    D -- Other Prohibitions --> G{Apply NullificationInMajority(Ratio)};

    E -- Yes, 1 Lost (e.g., into Yam HaGadol) --> H{Apply PresumeLostIsProhibited?};
    H -- Yes (Rav/R' Eliezer) --> I[Remaining Permitted (perhaps with 2-by-2 usage)];
    H -- No (Shmuel's Override) --> J[Remaining Prohibited (AZ stringency)];

    F -- Yes, 1 Lost (e.g., Barrel in Dead Sea) --> K{Is Loss Noticeable & Irretrievable?};
    K -- Yes (Reish Lakish/Barrel) --> L[Remaining Permitted];
    K -- No (Rabba/Fig) --> M[Remaining Prohibited];

    E -- No, Items Separated (e.g., 40/60 split) --> N{Which Group Separated/Lost from?};
    N -- From Majority-Containing Group --> O[Remaining Prohibited];
    N -- From Minority-Containing Group --> P[Remaining Permitted (AZ presumed in Majority)];

    J -- Further Mixing/Uncertainty (Sfeik Sfeika) --> Q{Shmuel's HighSecurityOverride applies to Sfeik Sfeika?};
    Q -- Yes (Shmuel/R' Yehuda) --> R[Prohibited Forever];
    Q -- No (Baraita/R' Shimon) --> S[Permitted];

    G --> T[Status based on Ratio/Specific Halacha];

Simplified Decision Tree:

  • Input: (ProhibitedItem, MixedBatch)
  • Step 1: Identification Check
    • IF ProhibitedItem.isIdentifiable(): MixedBatch becomes Permitted (after removing ProhibitedItem). HALT.
  • Step 2: Prohibition Type & Nullification
    • IF ProhibitedItem.Type == "Avodah Zarah" or ProhibitedItem.Type == "TerumaBarrel": NullificationInMajority fails (due to chashivut / einam b'teilim). Proceed to UncertaintyResolution.
    • ELSE IF ProhibitedItem.Type == "Standard": NullificationInMajority applies. HALT.
  • Step 3: Uncertainty Resolution (for Avodah Zarah / TerumaBarrel)
    • IF Event == "OneItemLost":
      • IF ProhibitedItem.Type == "Avodah Zarah":
        • IF Shmuel.HighSecurityOverride == true: MixedBatch becomes Prohibited. HALT.
        • ELSE IF Loss.isIrretrievable(): PresumeLostIsProhibited() is applied (Rav/R' Eliezer). MixedBatch becomes Permitted (with potential TwoByTwoUsage restriction). HALT.
      • ELSE IF ProhibitedItem.Type == "TerumaBarrel":
        • IF Loss.isNoticeableAndIrretrievable(): PresumeLostIsProhibited() is applied (Reish Lakish). MixedBatch becomes Permitted. HALT.
        • ELSE: MixedBatch becomes Prohibited. HALT.
    • ELSE IF Event == "BatchSeparated(GroupA, GroupB)":
      • IF ProhibitedItem.Type == "Avodah Zarah":
        • IF ItemFromGroupA.isMixed(newBatch) AND GroupA.isMinority(): newBatch becomes Permitted (Prohibited presumed in GroupB). HALT.
        • ELSE: newBatch becomes Prohibited. HALT.
    • ELSE IF Event == "CompoundUncertainty":
      • IF ProhibitedItem.Type == "Avodah Zarah":
        • IF Shmuel.HighSecurityOverride == true (aligned with R' Yehuda): MixedBatch becomes Prohibited. HALT.
        • ELSE (aligned with R' Shimon): MixedBatch becomes Permitted. HALT.
      • ELSE: MixedBatch becomes Permitted. HALT.

Two Implementations

The sugya presents a fascinating comparison between two "algorithms" for resolving uncertainty in mixtures, particularly concerning Avodah Zarah (AZ) items. Let's call them Algorithm A: The Teliyah Optimist and Algorithm B: The HighSecurity Overrider.

Algorithm A: The Teliyah Optimist (Rav Naḥman citing Rav, k'R' Eliezer)

This algorithm, championed by Rav Naḥman in the name of Rav, leverages the PresumeLostIsProhibited protocol (or teliyah) to resolve a potentially unresolvable mixture. The core idea is that if an item is lost from a mixture containing one prohibited item and many permitted ones, we can "optimistically" assume the lost item was the prohibited one.

How it works:

  1. Input: (AZ_Ring, 100_Permitted_Rings) where AZ_Ring.isEinamB'teilim() == true (not nullifiable in majority).
  2. Event: OneRing.fallsInto(GreatSea) – a definitive, irretrievable loss.
  3. Core Logic (PresumeLostIsProhibited): The system invokes a heuristic: "Since a ring is gone, and we need a prohibited item to be gone to clear the batch, let's assume the AZ_Ring was the one that departed."
  4. Output (Initial): 100_Permitted_Rings are now Permitted.

Refinement with TwoByTwoUsage (R' Elazar's Patch):

Rava objects, pointing out R' Elazar's condition for R' Eliezer's teliyah in the Mishna: only TwoByTwoUsage is permitted. Rav Naḥman accepts this "patch." This isn't about the status of the rings (they are permitted), but their utilization. If you use them one by one, you might still accidentally use the originally prohibited one if the teliyah was a false positive. By using them two-by-two, you guarantee that at least one of the two is permitted, effectively mitigating the risk.

  • FUNCTION UseRings(BatchOfRings):
    • IF BatchOfRings.size() < 2: RETURN Error("Cannot use one-by-one")
    • WHILE BatchOfRings.size() >= 2:
      • TakeTwoRings()
      • Use(TwoRings)
      • Remove(TwoRings)
    • IF BatchOfRings.size() == 1: RETURN Error("Cannot use last ring alone")

MajorityLocation Sub-Algorithm (Rav's 40/60 Split):

This shows a more nuanced application of teliyah based on presumptive location. If 1 AZ ring mixes with 100, then 40 separate, and 60 remain.

  • Case 1: Item.from(40_Group).mixesWith(NewBatch)
    • IF AZ_Ring.isPresumedIn(60_Group): NewBatch becomes Permitted. The "probabilistic location" of the AZ ring is in the majority group. The system is confident enough to clear the minority group.
  • Case 2: Item.from(60_Group).mixesWith(NewBatch)
    • IF NOT AZ_Ring.isPresumedIn(Remaining_59_Group): NewBatch becomes Prohibited. This is because the initial presumption (AZ in 60) means the 60-group definitely contains the AZ. If one leaves, the remaining 59 still have a high probability of containing the AZ. The Gemara clarifies this to mean if the entire 40 or 60 groups separate. This demonstrates a teliyah-like principle applied to a group's status rather than a lost item. The core concept is that the AZ_Ring is "allocated" to the majority partition.

Algorithm B: The HighSecurity Overrider (Shmuel's Stringency for Avodah Zarah)

Shmuel introduces a critical "security override" that fundamentally alters how Avodah Zarah data is processed. He declares that for Avodah Zarah, PresumeLostIsProhibited and even CompoundUncertaintyProtocol are entirely bypassed.

How it works:

  1. Input: (AZ_Item, MixedBatch) or (Uncertainty1, Uncertainty2, AZ_Item_Source)
  2. Core Logic (HighSecurityOverride): Shmuel asserts a fixed rule: IF ProhibitedItem.Type == "Avodah Zarah":
    • UncertaintyLevel.SingleDoubt == Prohibited
    • UncertaintyLevel.CompoundDoubt == Prohibited
    • PresumeLostIsProhibited == DISABLED
    • RETURN Prohibited

Philosophical Underpinnings:

This algorithm treats Avodah Zarah as a "critical system vulnerability." Unlike other prohibitions that might have "mitigating factors" (like Teruma which can be sold to a priest), Avodah Zarah is fundamentally irredeemable. Therefore, the system adopts a maximally stringent security posture: any doubt, however layered, results in a Prohibited status. This aligns with Rabbi Yehuda's view regarding rimonei Badan (exceptionally significant pomegranates that are einam b'teilim), which he declares prohibit even in CompoundUncertainty. Shmuel specifically applies this stringency to Avodah Zarah, acknowledging its unique, severe "threat level." The baraita that permits sfeik sfeika for AZ is then understood as a differing tannaic opinion (R' Shimon).

In essence, Algorithm A tries to find a path to Permitted by cleverly resolving uncertainty, while Algorithm B imposes an immediate Prohibited status due to the inherent severity of the Avodah Zarah "data type," overriding more lenient uncertainty protocols.


Edge Cases

Let's test our understanding with a couple of inputs that challenge the basic PresumeLostIsProhibited (teliyah) and CompoundUncertainty protocols.

Edge Case 1: The "Non-Irretrievable" Loss

  • Input: A mixture of one Avodah Zarah ring and one hundred permitted rings. One ring is subsequently lost, not into the "Great Sea" (Yam HaGadol), but into a small, shallow puddle on the floor of the courtyard.

  • Naïve Logic (PresumeLostIsProhibited): The teliyah algorithm simply requires a "lost item." Since one ring is gone from the mixture, we should assume it was the Avodah Zarah ring, thereby permitting the remaining 100 rings. The location of the loss (puddle vs. sea) seems irrelevant to the "lost" status.

  • Expected Output: Prohibited. The Gemara, when distinguishing between Rav Naḥman's rings and Reish Lakish's teruma barrels (Zevachim 74a:9), highlights the "noticeability" and implied irretrievability of the loss. While the ring in the Great Sea might not be "noticeable" in the same way a barrel is, the "Great Sea" itself signifies a definitive, unrecoverable loss. A "small, shallow puddle" implies the ring could still be retrieved, or its "loss" is not definitive enough to trigger the PresumeLostIsProhibited algorithm. The system requires a "hard reset" on the item's location to confidently declare it gone; otherwise, the uncertainty persists, and the stringent Avodah Zarah rules prevail. The "lost" condition is not merely physical absence, but a permanent, irrecoverable removal from the system's consideration set.

Edge Case 2: Multi-Layered Avodah Zarah Uncertainty Under Shmuel

  • Input: A Prohibited_AZ_Cup falls into 10,000_Permitted_Cups (Mixture A). Then, one cup from Mixture A falls into 10,000_Other_Permitted_Cups (Mixture B). Subsequently, one cup from Mixture B falls into 10,000_Yet_Another_Permitted_Cups (Mixture C). What is the status of Mixture C according to Shmuel?

  • Naïve Logic (CompoundUncertaintyProtocol): The general rule for sfeik sfeika (a doubt of a doubt) is to permit. Here, we have a "doubt of a doubt of a doubt" (triple uncertainty). This should be even more permissive. The probability of the original Prohibited_AZ_Cup being in Mixture C is exceedingly low, suggesting Mixture C should be permitted.

  • Expected Output: Prohibited. According to Shmuel's HighSecurityOverride for Avodah Zarah, "its uncertainty and its compound uncertainty are prohibited forever" (Zevachim 74a:6). This aligns with R' Yehuda's stringent view (Zevachim 74a:11) even for non-AZ prohibitions like rimonei Badan. For Avodah Zarah, the system employs a "zero-tolerance" policy for uncertainty. No matter how many layers of doubt are introduced, the fundamental Prohibited status propagates. The "security threat" of Avodah Zarah is considered so severe that standard probabilistic allowances for CompoundUncertainty are completely overridden, maintaining the Prohibited status across all subsequent mixtures.


Refactor

The sugya highlights a tension between PresumeLostIsProhibited (teliyah) and the stringency of specific prohibitions. A minimal "refactor" that would clarify a significant portion of this complexity would be to introduce a universal, explicit Irretrievability flag for the PresumeLostIsProhibited algorithm:

Original Implicit Condition: The PresumeLostIsProhibited (teliyah) algorithm is invoked when an item is "lost" (e.g., into the Great Sea). The conditions for what constitutes a "lost" item are somewhat fluid, leading to debates like Rabba vs. Rav Yosef regarding noticeable vs. unnoticeable items (barrels vs. figs).

Proposed Refactor: Introduce a mandatory Irretrievability parameter to the PresumeLostIsProhibited function, making its application more consistent.

  • FUNCTION PresumeLostIsProhibited(Mixture, LostItem, IrretrievabilityConfidence)
    • IF IrretrievabilityConfidence < THRESHOLD_IRRETRIEVABLE:
      • RETURN PROHIBITED (Cannot confidently presume the prohibited item is permanently gone)
    • ELSE IF ProhibitedItem.Type == "Avodah Zarah" AND Shmuel.HighSecurityOverride == true:
      • RETURN PROHIBITED (AZ overrides teliyah)
    • ELSE:
      • RETURN PERMITTED (Presume lost item was prohibited)

This refactor would explicitly codify the nuances of "Great Sea" vs. a puddle, and "barrel" vs. "fig" by requiring a clear "irretrievable" status. It helps to abstract the underlying environmental conditions (e.g., large body of water, small item vs. large item) into a single, testable parameter, making the teliyah algorithm's activation conditions more transparent and less prone to contextual ambiguity (though Shmuel's AZ override would still apply independently).


Takeaway

This sugya is a masterclass in designing robust systems for managing uncertainty. It demonstrates how Halacha operates as a sophisticated set of algorithms, applying different "security protocols" based on the "data type" of the prohibition. Whether through the optimistic "packet loss" resolution of teliyah, the probabilistic inference of rov, or the layered logic of sfeik sfeika, the system constantly strives for clarity. Yet, it acknowledges that some "threat models" (like Avodah Zarah) demand an unyielding, "high-security override," prioritizing absolute avoidance over probabilistic leniency. It's a testament to the dynamic and adaptive nature of halachic reasoning, always seeking to balance practical reality with foundational principles.