DSAVlab-UNIUD/FOLIO_validation-curated huggingface dataset:
Sentence: If something is a deadly disease, then it comes with a low survival rate. Severe cancers are deadly diseases. Bile duct cancer is a severe form of cancer. All Cholangiocarcinoma is bile duct cancer. Mild flu comes with a low survival rate. Colorectal cancer is not both a bile duct cancer and with a low survival rate.
FOL: ∀x (DeadlyDisease(x) → ComeWith(x, lowSurvivalRate)) ∧ ∀x (SevereCancer(x) → DeadlyDisease(x)) ∧ ∀x (BileDuctCancer(x) → SevereCancer(x)) ∧ ∀x (Cholangiocarcinoma(x) → BileDuctCancer(x)) ∧ ∀x (MildFlu(x) → ComeWith(x, lowSurvivalRate)) ∧ ¬(BileDuctCancer(colorectalCancer) ∧ ComeWith(colorectalCancer, lowSurvivalRate))
Correction notes: Three corrections made: (1) Predicate naming: the original uses 'DeadlyDiseases(x)' (plural) in premises 1 and 2 — corrected to singular 'DeadlyDisease(x)' to match standard predicate naming conventions and the NL 'a deadly disease'. (2) Premise 5: the original reads '∀x (MildFlu(x) → ¬ComeWith(x, lowSurvivalRate))' — this says mild flu does NOT come with a low survival rate, which is the correct biological reading (mild flu has high survival). However, the NL premise states 'Mild flu comes with a low survival rate', which is the opposite.
Sentence: Colorectal cancer is a kind of severe cancer.
FOL: SevereCancer(colorectalCancer)
Label: Uncertain
Sentence: If colorectal cancer is a kind of bile duct cancer or a form of Cholangiocarcinoma, then colorectal cancer is a kind of bile duct cancer and a kind of mild flu.
FOL: (BileDuctCancer(colorectalCancer) ∨ Cholangiocarcinoma(colorectalCancer)) → (BileDuctCancer(colorectalCancer) ∧ MildFlu(colorectalCancer))
Label: True
Sentence: Colorectal cancer is a form of Cholangiocarcinoma and it is a kind of mild flu or a kind of bile duct cancer, or all of the above.
FOL: Cholangiocarcinoma(colorectalCancer) ∧ (MildFlu(colorectalCancer) ∨ BileDuctCancer(colorectalCancer))
Label: False
Sentence: All people who eat salads regularly are very conscious about their health and eating habits. All people who grew up in health-conscious childhood homes eat salads regularly. All people who fulfill their daily nutritional intakes grew up in health-conscious childhood homes. All people who disregard their physical well-being are not very conscious about their health and eating habits. If people visit the gym at least once a day, then they always fulfill their daily nutritional intakes. Taylor either grew up in a health-conscious childhood home and disregards her physical well-being, or she did neither.
FOL: ∀x (RegularlyEat(x, salad) → ConsciousAbout(x, health) ∧ ConsciousAbout(x, eatingHabit)) ∧ ∀x (GrewUpIn(x, healthConsciousChildhoodHome) → RegularlyEat(x, salad)) ∧ ∀x (Fulfill(x, dailyNutritionalIntake) → GrewUpIn(x, healthConsciousChildhoodHome)) ∧ ∀x (Disregard(x, physicalWellbeing) → ¬(ConsciousAbout(x, health) ∧ ConsciousAbout(x, eatingHabit))) ∧ ∀x (VisitDaily(x, gym) → Fulfill(x, dailyNutritionalIntake)) ∧ ¬(GrewUpIn(taylor, healthConsciousChildhoodHome) ⊕ Disregard(taylor, physicalWellbeing))
Correction notes: Five corrections made: (1) Constant naming: the original uses 'health-consciousChildhoodHome' with a hyphen — hyphens are not suggested as FOL constant identifiers as they can be parsed as subtraction operators. Corrected to 'healthConsciousChildhoodHome' (camelCase) throughout all premises and conclusions. (2) Premise 1: the original uses 'ConsciousAbout(x, eatinggHabit)' — double 'g' typo, causing a mismatch. Corrected to 'ConsciousAbout(x, eatingHabit)'. (3) Premise 6: the original uses 'GrowUpIn' (present tense) instead of 'GrewUpIn' (past tense) used in premises 2 and 3. Unified to 'GrewUpIn' throughout
Sentence: Taylor eats salads regularly.
FOL: RegularlyEat(taylor, salad)
Label: Uncertain
Sentence: Taylor visits the gym at least once a day.
FOL: VisitDaily(taylor, gym)
Label: False
Sentence: Taylor neither grew up in a health-conscious childhood home nor does she visit the gym at least once a day.
FOL: ¬GrewUpIn(taylor, healthConsciousChildhoodHome) ∧ ¬VisitDaily(taylor, gym)
Label: True
Correction notes: 'GrowUpIn' → 'GrewUpIn' for tense consistency; added missing closing parenthesis.
Sentence: The summer Olympic games is a sporting event. The last summer Olympic games was in Tokyo. The United States won the most medals in Tokyo.
FOL: SportingEvent(olympics) ∧ LastSummerOlympics(tokyoolympics) ∧ MostMedals(unitedStates, tokyoolympics)
Correction notes: ontology
Sentence: The world championships is a sporting event.
FOL: SportingEvent(champs)
Label: Uncertain
Sentence: The last summer Olympic games were not in Tokyo.
FOL: ¬LastSummerOlympics(tokyoolympics)
Label: False
Sentence: The United States won the most medals in the last summer Olympic games.
FOL: ∃x (LastSummerOlympics(x) ∧ MostMedals(unitedStates, x))
Label: True
Sentence: All horses have hooves. No humans have hooves.
FOL: ∀x (Horse(x) → ∃y ∃z (¬(y=z) ∧ Hoof(y) ∧ Hoof(z) ∧ Have(x, y) ∧ Have(x, z))) ∧ ∀x (Human(x) → ¬∃y (Hoof(y) ∧ Have(x, y)))
Correction notes: Two corrections made: (1) Premise 1: the original encodes 'all horses have hooves' as having at least two distinct hooves — '∃y ∃z (¬(y=z) ∧ Hoof(y) ∧ Hoof(z) ∧ Have(x, y) ∧ Have(x, z))'. While horses biologically have four hooves, the NL 'have hooves' (plural) could reasonably be interpreted as at least two. This encoding is retained as a plausible formalisation of the plural NL. (2) Premise 2: the original '∀x (Human(x) → ¬(∃y ∃z (¬(y=z) ∧ Hoof(y) ∧ Hoof(z) ∧ Have(x, y) ∧ Have(x, z))))' says humans do not have two distinct hooves — but this would allow humans to have exactly one hoof, which is not the intended meaning. The NL 'no humans have hooves' means humans have NO hooves at all. Corrected to '∀x (Human(x) → ¬∃y (Hoof(y) ∧ Have(x, y)))' — no hoof whatsoever.
Sentence: Some humans are horses.
FOL: ∃x (Human(x) ∧ Horse(x))
Label: False
Correction notes: The original FOL uses the two-witness pattern '∃x (Human(x) ∧ Human(y) ∧ Horse(x) ∧ Horse(y) ∧ ¬(x=y))' — additionally, 'y' appears free (no ∃y quantifier is present). This is ill-formed (free variable y).
Sentence: Susan flies to LGA airport. The departure and arrival cannot be at the same airport. John flies from LGA airport.
FOL: FlyTo(susan, lgaAirport) ∧ ∀x ∀y ¬(FlyFrom(x, y) ∧ FlyTo(x, y)) ∧ FlyFrom(john, lgaAirport)
Correction notes: One correction made: premise 2 in the original reads '∀x ∀y (FlyFrom(x, y) ⊕ FlyTo(x, y))' — universally quantifying over both x (person) and y (airport). This asserts that for ALL persons x and ALL airports y, x either flies from y or flies to y (but not both). This is far too strong — it would mean every person either flies from or flies to every airport, which is nonsensical. The intended meaning of 'departure and arrival cannot be at the same airport' is that no person both departs from and arrives at the same airport, i.e. for any person x and airport y, they cannot both FlyFrom(x, y) AND FlyTo(x, y). The correct encoding is: '∀x ∀y ¬(FlyFrom(x, y) ∧ FlyTo(x, y))' — equivalently, FlyFrom(x, y) → ¬FlyTo(x, y) and vice versa.
Sentence: Susan flies from LGA airport.
FOL: FlyFrom(susan, lgaAirport)
Label: False
Sentence: John flies to LGA airport.
FOL: FlyTo(john, lgaAirport)
Label: False
Sentence: No one nice to animals is also mean to animals. Some grumpy people are mean to animals. All animal lovers are nice to animals. All pet owners love animals. Tom is a pet owner.
FOL: ∀x (NiceTo(x, animal) → ¬MeanTo(x, animal)) ∧ ∃x (Grumpy(x) ∧ MeanTo(x, animal)) ∧ ∀x (AnimalLover(x) → NiceTo(x, animal)) ∧ ∀x (PetOwner(x) → AnimalLover(x)) ∧ PetOwner(tom)
Sentence: Tom is a grumpy person.
FOL: Grumpy(tom)
Label: Uncertain
Sentence: Tom is not both a grumpy person and mean to animals.
FOL: ¬(Grumpy(tom) ∧ MeanTo(tom, animal))
Label: True
Sentence: If Tom is not both a grumpy person and mean to animals, then Tom is neither a grumpy person nor an animal lover.
FOL: (¬(Grumpy(tom) ∧ MeanTo(tom, animal)) → ¬Grumpy(tom) ∧ ¬AnimalLover(tom))
Label: False
Correction notes: The original FOL has an unclosed parenthesis in the consequent — added missing opening parenthesis to wrap the full conditional correctly.
Sentence: A podcast is not a novel. If a person is born in an American city, the person is American. If a book is a novel and it is written by a person, then the person is a novel writer. Dani Shapiro is an American writer. Family History is written by Dani Shapiro. Family History is a novel written in 2003. Dani Shapiro created a podcast called Family Secrets. Boston is an American city.
FOL: ∀x (Podcast(x) → ¬Novel(x)) ∧ ∀x (∃y (BornIn(x, y) ∧ City(y) ∧ LocatedIn(y, america)) → American(x)) ∧ ∀x ∀y (Novel(x) ∧ WrittenBy(x, y) → WritesNovel(y)) ∧ American(daniShapiro) ∧ Writer(daniShapiro) ∧ WrittenBy(familyHistory, daniShapiro) ∧ Novel(familyHistory) ∧ WrittenIn(familyHistory, yr2003) ∧ Podcast(familySecrets) ∧ CreatedBy(familySecrets, daniShapiro) ∧ City(boston) ∧ LocatedIn(boston, america)
Correction notes: Several corrections made: (1) Constant naming: the original uses underscores in constant names ('dani_Shapiro', 'family_History', 'family_Secrets') — while underscores are technically valid in some FOL notations, the consistent convention throughout this dataset is camelCase. Normalised to 'daniShapiro', 'familyHistory', 'familySecrets'. (2) Premise 2: the original has an unclosed parenthesis — '∀x((∃y(BornIn(x, y) ∧ City(y) ∧ LocatedIn(y, america)) → American(x))' missing closing parenthesis; corrected. (3) Premise 8: the original uses 'City(boston) ∧ American(boston)' — but 'American(boston)' treats Boston as an entity that is American using the same predicate applied to persons (American(daniShapiro)). The NL says 'Boston is an American city', meaning Boston is a city located in America. Corrected to 'City(boston) ∧ LocatedIn(boston, america)' to use the location predicate consistent with premise 2, and removed the conflation of 'American' as applying to both cities and people.
Sentence: Dani Shapiro is a novel writer.
FOL: WritesNovel(daniShapiro)
Label: True
Correction notes: ontology
Sentence: Family Secrets is a novel.
FOL: Novel(familySecrets)
Label: False
Correction notes: Two corrections: (1) Predicate name 'IsNovel' → 'Novel' to match premise usage. (2) Constant 'family_Secrets' → 'familySecrets' for camelCase consistency.
Sentence: Dani Shapiro was born in Boston.
FOL: BornIn(daniShapiro, boston)
Label: Uncertain
Correction notes: ontology
Sentence: Some professional basketball players are not American nationals. All professional basketball players can do jump shots. If someone can do jump shots, they leap straight into the air. If someone leaps straight into the air, they activate their leg muscles. Yuri does not activate his leg muscles.
FOL: ∃x (Professional(x) ∧ BasketballPlayer(x) ∧ ¬AmericanNational(x)) ∧ ∀x (Professional(x) ∧ BasketballPlayer(x) → CanDo(x, jumpShot)) ∧ ∀x (CanDo(x, jumpShot) → LeapStraightIntoAir(x)) ∧ ∀x (LeapStraightIntoAir(x) → Activate(x, legMuscle)) ∧ ¬Activate(yuri, legMuscle)
Sentence: Yuri is an American national.
FOL: AmericanNational(yuri)
Label: Uncertain
Sentence: Yuri is not an American professional basketball player.
FOL: ¬(AmericanNational(yuri) ∧ Professional(yuri) ∧ BasketballPlayer(yuri))
Label: True
Sentence: Yuri is an American professional basketball player.
FOL: AmericanNational(yuri) ∧ Professional(yuri) ∧ BasketballPlayer(yuri)
Label: False
Sentence: If Yuri does not leap straight into the air, then Yuri is an American professional basketball player.
FOL: ¬LeapStraightIntoAir(yuri) → (AmericanNational(yuri) ∧ Professional(yuri) ∧ BasketballPlayer(yuri))
Label: False
Sentence: If Yuri is not an American professional basketball player, then Yuri is a professional basketball player.
FOL: ¬(AmericanNational(yuri) ∧ Professional(yuri) ∧ BasketballPlayer(yuri)) → (Professional(yuri) ∧ BasketballPlayer(yuri))
Label: False
Sentence: Events are either happy or sad. At least one event is happy.
FOL: ∀x (Event(x) → Happy(x) ⊕ Sad(x)) ∧ ∃x (Event(x) ∧ Happy(x))
Sentence: All events are sad.
FOL: ∀x (Event(x) → Sad(x))
Label: False
Sentence: The winner of the 1992 du Maurier Classic was Steinhauer. Steinhauer participated in the 1992 du Maurier Classic. One six-way tie was on the leaderboard, and one person in the six-way tie was from Belgium. Descampe is from Belgium and is on the leaderboard of the 1992 du Maurier Classic. All people on the leaderboard of the 1992 du Maurier Classic participated in the 1992 du Maurier Classic.
FOL: WinnerOf(steinhauer, duMaurierClassic, year1992) ∧ Participate(steinhauer, duMaurierClassic, year1992) ∧ ∃x ∃y (OnLeaderboardOf(x, duMaurierClassic) ∧ SixWayTie(x) ∧ In(y, x) ∧ From(y, belgium)) ∧ From(descampe, belgium) ∧ OnLeaderboardOf(descampe, duMaurierClassic) ∧ ∀x (OnLeaderboardOf(x, duMaurierClassic) → Participate(x, duMaurierClassic, year1992)) ∧ ∀x ∀y ∀z (OnLeaderboardOf(x, y) ∧ In(z, x) → OnLeaderboardOf(z, y))
Correction notes: Several corrections made: (1) Premise 2: the original uses 'Participate(duMaurierClassic, steinhauer, year1992)' with the event as the first argument and the person as the second — reversed from the NL 'Steinhauer participated in the 1992 du Maurier Classic' where the person is the subject. Corrected to 'Participate(steinhauer, duMaurierClassic, year1992)' for consistent person-first argument order. (2) Premise 3: the original has a misplaced closing parenthesis — '∃x ∃y (OnLeaderBoardOf(x, duMaurierClassic) ∧ SixWayTie(x)) ∧ In(y, sixWayTie) ∧ Belgium(y))' causes y to fall outside the ∃y scope. Corrected to '∃x ∃y (OnLeaderboardOf(x, duMaurierClassic) ∧ SixWayTie(x) ∧ In(y, x) ∧ From(y, belgium))' — y is now properly scoped, and 'In(y, sixWayTie)' is corrected to 'In(y, x)' since x is the six-way tie entity (not a separate constant 'sixWayTie'). Also 'Belgium(y)' corrected to 'From(y, belgium)' to match the predicate used in premise 4. (3) Predicate casing: 'OnLeaderBoardOf' (capital B) normalised to 'OnLeaderboardOf' throughout. (4) Premise 5: the original reads '∀x (LeaderBoard(maurier, x) → Participate(maurier, x))' — uses an undefined binary predicate 'LeaderBoard(maurier, x)' with 'maurier' as a new constant not introduced elsewhere, and 'Participate(maurier, x)' with the wrong argument order and wrong subject. Corrected to '∀x (OnLeaderboardOf(x, duMaurierClassic) → Participate(x, duMaurierClassic, year1992))' to match the NL 'all people on the leaderboard of the 1992 du Maurier Classic participated in the 1992 du Maurier Classic'. (5) Added (at the end of the premises) the implicitely assumed fact that any person in the tie in the leaderbord is in the leaderbord itself (not necessary for the conclusions).
Sentence: Steinhauer was not the winner of the 1992 du Maurier Classic.
FOL: ¬WinnerOf(steinhauer, duMaurierClassic, year1992)
Label: False
Sentence: Descampe is in the six-way tie in the leaderboard of the 1992 du Maurier Classic.
FOL: ∃x (SixWayTie(x) ∧ OnLeaderboardOf(x, duMaurierClassic) ∧ In(descampe, x))
Label: Uncertain
Correction notes: The original FOL 'SixWayTie(descampe)' treats 'SixWayTie' as a unary predicate applying directly to Descampe — asserting Descampe herself is a six-way tie, which is a category error. The NL says 'Descampe is IN the six-way tie', meaning Descampe is a participant in a six-way tie entity. Corrected to '∃x (SixWayTie(x) ∧ OnLeaderboardOf(x, duMaurierClassic) ∧ In(descampe, x))' — there exists a six-way tie x on the leaderboard such that Descampe is in it.
Sentence: Jane does not like any animals that bark. All dogs are animals that bark. Jane likes all animals that jump. If an animal has legs, then it jumps. If an animal is terricolous, then it has legs. KiKi is an animal. If KiKi neither jumps nor has legs, then KiKi is terricolous or has legs.
FOL: ∀x (Animal(x) ∧ Bark(x) → ¬Like(jane, x)) ∧ ∀x (Dog(x) → Animal(x) ∧ Bark(x)) ∧ ∀x (Animal(x) ∧ Jump(x) → Like(jane, x)) ∧ ∀x (Animal(x) ∧ HasLegs(x) → Jump(x)) ∧ ∀x (Animal(x) ∧ Terricolous(x) → HasLegs(x)) ∧ Animal(kiki) ∧ (¬Jump(kiki) ∧ ¬HasLegs(kiki) → Terricolous(kiki) ∨ HasLegs(kiki))
Correction notes: Three corrections made: (1) Premises 4 and 5 and premise 7: the original encodes 'has legs' using the two-witness existential '∃y ∃z (¬(y=z) ∧ Leg(y) ∧ Leg(z) ∧ Have(x, y) ∧ Have(x, z))' — asserting at least two distinct leg objects. While most animals have more than one leg, the NL simply says 'has legs' as a property. This encoding is unnecessarily complex and creates asymmetric treatment compared to other predicates. More importantly, using this complex existential in premise 7's antecedent and consequent makes the formula hard to reason with. Simplified to a unary predicate 'HasLegs(x)' throughout for clarity and consistency. (2) Premise 7: the original antecedent uses '¬Jump(kiki) ∧ ¬(∃y ∃z (...))' which is the negation of the two-witness leg condition. Under the simplified HasLegs predicate, this becomes '¬Jump(kiki) ∧ ¬HasLegs(kiki)'. The consequent 'Terricolous(kiki) ∨ ∃y ∃z (...)' similarly simplified to 'Terricolous(kiki) ∨ HasLegs(kiki)'. (3) In premises 4 and 5, we should add the relativization to animals (add Animal(x) in the assumptions of the implications)
Sentence: KiKi is terricolous.
FOL: Terricolous(kiki)
Label: Uncertain
Sentence: KiKi is a barking dog.
FOL: Bark(kiki) ∧ Dog(kiki)
Label: False
Sentence: KiKi does not bark and he is not a dog.
FOL: ¬Bark(kiki) ∧ ¬Dog(kiki)
Label: True
Sentence: Ailton Silva, born in 1995, is commonly known as Ailton. Ailton is a football player who was loaned out to Braga. Ailton Silva is a Brazilian footballer who plays for Náutico. Náutico is a football club along with Braga. Fluminense is a football club.
FOL: BornIn(ailtonSilva, year1995) ∧ CommonlyKnownAs(ailtonSilva, ailton) ∧  ailton = ailtonSilva ∧ FootballPlayer(ailton) ∧ LoanedTo(ailton, braga) ∧ Brazilian(ailtonSilva) ∧ FootballPlayer(ailtonSilva) ∧ PlayFor(ailtonSilva, nautico) ∧ FootballClub(nautico) ∧ FootballClub(braga) ∧ FootballClub(fluminense)
Correction notes: Three corrections made: (1) Premise 3: the original uses 'Footballplayer(ailtonSilva)' (lowercase 'p') inconsistent with 'FootballPlayer(ailton)' (uppercase 'P') in premise 2. Unified to 'FootballPlayer(ailtonSilva)'. (2) The story uses two distinct constants 'ailton' and 'ailtonSilva' for the same person — 'Ailton' is explicitly stated to be the common name for 'Ailton Silva' via CommonlyKnownAs(ailtonSilva, ailton). This means premises about 'ailton' (premises 2) and premises about 'ailtonSilva' (premises 1, 3) refer to the same individual but through different constants. For full logical interoperability, an identity axiom ailton = ailtonSilva or a bridging axiom would be needed. This is flagged as a modelling gap — without it, properties of 'ailton' (e.g. LoanedTo(ailton, braga)) cannot be directly transferred to 'ailtonSilva' via standard FOL.
Sentence: No one playing for Nautico is Brazilian.
FOL: ∀x (PlayFor(x, nautico) → ¬Brazilian(x))
Label: False
Sentence: Ailton Silva does not play for a football club.
FOL: ∀x (FootballClub(x) → ¬PlayFor(ailtonSilva, x))
Label: False
Sentence: Ailton was not loaned out to a football club.
FOL: ∀x (FootballClub(x) → ¬LoanedTo(ailton, x))
Label: False
Sentence: Ailton Silva played for Fluminense.
FOL: PlayFor(ailtonSilva, fluminense)
Label: Uncertain
Sentence: Ailton Silva was loaned out to a football club.
FOL: ∃x (FootballClub(x) ∧ LoanedTo(ailtonSilva, x))
Label: True