DSAVlab-UNIUD/FOLIO_validation-curated huggingface dataset:
Sentence: All vehicle registration plates in Istanbul begin with the number 34. Plates that do not begin with the number 34 are not from Istanbul. Joe's vehicle registration plate is from Istanbul. Tom's license plate begins with the number 35. If a license plate begins with the number 35, then it does not begin with the number 34.
FOL: ∀x (VehicleRegistrationPlateIn(x, istanbul) → BeginWith(x, num34)) ∧ ∀x (¬BeginWith(x, num34) → ¬VehicleRegistrationPlateIn(x, istanbul)) ∧ ∃x (Owns(joe, x) ∧ VehicleRegistrationPlateIn(x, istanbul)) ∧ ∃x ∃y (Owns(tom, x) ∧ VehicleRegistrationPlateIn(x, y) ∧ BeginWith(x, num35)) ∧ ∀x (BeginWith(x, num35) → ¬BeginWith(x, num34))
Correction notes: Broken Linkage (Premise 2): The original FOL used 'FromIstanbul(x)', which disconnected it from the 'VehicleRegistrationPlateIn(x, istanbul)' predicate used in Premise 1, Premise 3, and Conclusion 75. Unified the predicate to 'VehicleRegistrationPlateIn(x, istanbul)' to allow the logical chain to resolve. Note: The previous reviewer correctly identified this fix in their explanation but failed to actually apply it to the FOL string in their output. It has now been applied.
Sentence: Joe's license plate begins with the number 34.
FOL: ∃x (Owns(joe, x) ∧ BeginWith(x, num34) ∧ ∃y VehicleRegistrationPlateIn(x, y))
Label: True
Correction notes: There is no referement to x that is a license plate in the original FOL_sentence: given the provided ontology, we can express this information saying that x is a vehicle registration plate in some place
Sentence: Tom's license plate is from Istanbul.
FOL: ∃x (Owns(tom, x) ∧ VehicleRegistrationPlateIn(x, istanbul))
Label: False
Sentence: If people at Mary's school work in student jobs on campus, then they need to earn money to help pay for their college tuition. If people at Mary's school order takeout frequently in college, then they work in student jobs on campus. People at Mary's school order takeout frequently in college or enjoy the dining hall meals and recipes. If people at Mary's school enjoy the dining hall meals and recipes, then they are not picky eaters. If people at Mary's school enjoy the dining hall meals and recipes, then they spend a lot of their time eating and catching up with friends in the campus dining halls. Hannah is at Mary's school. Hannah works in student jobs on campus and if she needs to earn money to help pay for her college tuition, then she is neither picky nor needs to earn money to help pay for her college tuition.
FOL: ∀x ((At(x, marysSchool) ∧ WorkIn(x, studentJob, campus)) → NeedToEarnMoneyToHelpPayFor(x, collegeTuition)) ∧ ∀x ((At(x, marysSchool) ∧ OrderFrequently(x, takeout)) → WorkIn(x, studentJob, campus)) ∧ ∀x (At(x, marysSchool) → (OrderFrequently(x, takeout) ∨ Enjoy(x, diningHallMeal))) ∧ ∀x ((At(x, marysSchool) ∧ Enjoy(x, diningHallMeal)) → ¬PickyEater(x)) ∧ ∀x ((At(x, marysSchool) ∧ Enjoy(x, diningHallMeal)) → (Spend(x, aLotOfTime, eating, diningHall) ∧ Spend(x, aLotOfTime, catchingUpWithFriends, diningHall))) ∧ At(hannah, marysSchool) ∧ WorkIn(hannah, studentJob, campus) ∧ (NeedToEarnMoneyToHelpPayFor(hannah, collegeTuition) → (¬PickyEater(hannah) ∧ ¬NeedToEarnMoneyToHelpPayFor(hannah, collegeTuition)))
Correction notes: 1. Scope & Syntax Error (Premise 3): The original lacked an implication '→', asserting that all entities in the universe are at Mary's school. Corrected to '∀x (At(...) → (Order(...) ∨ Enjoy(...)))'. 2. Translation Failure (Premise 7): The NL says 'Hannah works... AND if she needs...', meaning the 'WorkIn' fact is independent of the conditional. The original FOL erroneously folded it into the antecedent. Corrected to 'WorkIn(...) ∧ (Need(...) → ...)'. Applied De Morgan's to the consequent to accurately match the 'neither... nor...' phrasing.
Sentence: Hannah needs to earn money to help pay for her college tuition.
FOL: NeedToEarnMoneyToHelpPayFor(hannah, collegeTuition)
Label: True
Correction notes: Label corrected from Uncertain to True. The premises contain a logical contradiction: Premise 6 (At) and Premise 7 (WorkIn) trigger Premise 1, which proves NeedToEarnMoney. However, Premise 7 states NeedToEarnMoney → ¬NeedToEarnMoney. This yields NeedToEarnMoney ∧ ¬NeedToEarnMoney. Under the Principle of Explosion in classical logic, contradictory premises allow any statement to be proven True.
Sentence: Hannah is at Mary's school and she is not a picky eater and spends a lot of her time eating and catching up with friends in the campus dining halls.
FOL: At(hannah, marysSchool) ∧ ¬PickyEater(hannah) ∧ Spend(hannah, aLotOfTime, eating, diningHall) ∧ Spend(hannah, aLotOfTime, catchingUpWithFriends, diningHall)
Label: True
Correction notes: The premises contain a logical contradiction
Sentence: Hannah is at Mary's school and she either is not a picky eater or, if she is, then she spends a lot of her time eating and catching up with friends in the campus dining halls.
FOL: At(hannah, marysSchool) ∧ (¬PickyEater(hannah) ∨ PickyEater(hannah)) ∧  (PickyEater(hannah) → (Spend(hannah, aLotOfTime, eating) ∧ Spend(hannah, aLotOfTime, catchingUpWithFriends, diningHall)))
Label: True
Sentence: No baked sweets are spicy. All cupcakes are baked sweets. All mala hotpots are spicy. All products from Baked by Melissa are cupcakes. Dried Thai chilies are spicy or mala hotpots or not baked sweets.
FOL: ∀x (BakedSweet(x) → ¬Spicy(x)) ∧ ∀x (Cupcake(x) → BakedSweet(x)) ∧ ∀x (MalaHotpot(x) → Spicy(x)) ∧ ∀x (Product(x) ∧ From(x, bakedByMelissa) → Cupcake(x)) ∧ (Spicy(driedThaiChili) ∨ MalaHotpot(driedThaiChili)∨ ¬BakedSweet(driedThaiChili))
Sentence: Dried Thai chilies are products of Baked by Melissa.
FOL: Product(driedThaiChili) ∧ From(driedThaiChili, bakedByMelissa)
Label: False
Sentence: Dried Thai chilies are not products of Baked by Melissa.
FOL: ¬(Product(driedThaiChili) ∧ From(driedThaiChili, bakedByMelissa))
Label: True
Sentence: Dried Thai chilies are a mala hotpot.
FOL: MalaHotpot(driedThaiChili)
Label: Uncertain
Sentence: Dried Thai chilies are neither products of Baked by Melissa nor baked sweets.
FOL: ¬(Product(driedThaiChili) ∧ From(driedThaiChili, bakedByMelissa)) ∧ ¬BakedSweet(driedThaiChili)
Label: True
Sentence: Dried Thai chilies are cupcakes and products of Baked by Melissa.
FOL: Cupcake(driedThaiChili) ∧ Product(driedThaiChili) ∧ From(driedThaiChili, bakedByMelissa)
Label: False
Sentence: If a restaurant is listed in Yelp's recommendations, then the restaurant has not received many negative reviews. All restaurants with a rating greater than four are listed in Yelp's recommendations. Some restaurants that do not provide take-out service receive many negative reviews. All restaurants that are popular among local residents have ratings greater than four. The Hamden Plaza Subway store has a rating greater than four, or it is popular among local residents.
FOL: ∀x (ListedIn(x, yelpRecommendation) → ¬ReceiveManyNegativeReviews(x)) ∧ ∀x (∃y (HaveRating(x, y) ∧ GreaterThan(y, four)) → ListedIn(x, yelpRecommendation)) ∧ ∃x (¬Provide(x, takeOutService) ∧ ReceiveManyNegativeReviews(x)) ∧ ∀x (PopularAmong(x, localResidents) → ∃y (HaveRating(x, y) ∧ GreaterThan(y, four))) ∧ (∃y (HaveRating(hamdenPlazaSubway, y) ∧ GreaterThan(y, four)) ∨ PopularAmong(hamdenPlazaSubway, localResidents))
Correction notes: (1) Since FOL is not suitable to express ambiguous quantity as 'many' that should be treated as 'at least one' with an existential, it is replaced the formulation '∃y (NegativeReview(y) ∧ Receive(x, y))' with 'ReceiveManyNegativeReviews(x)'. Furthermore, the original formulation  '∀x ∃y (ListedIn(x, yelpRecommendation) → NegativeReview(y) ∧ ¬Receive(x, y))' is malformed since there can be a restaurant listed in the yelp reccomandation even when it has negative reviews if we consider as y a negative review that is not received by that specific restaurant.(2) Adjusted the intepretation of 'some' as at least two different entities (two-witness interpretation). (2) Premise 2: the original '∀x ∀y (HaveRating(x, y) ∧ GreaterThan(y, 4) → ListedIn(x, yelpRecommendation))' universally quantifies over y, but a more correct reading is existential (even because it is not specified that there is only on rating). (3) Premise 3: the original '∃x ∃y (¬Provide(x, takeOutService) → NegativeReview(y) ∧ Receive(x, y))' uses a conditional inside existential quantifiers, giving 'there exist x and y such that if x doesn't provide takeout then y is a negative review received by x' — nearly vacuously true, beacuse satisfies even if there are no restaurants than don't provide take-out service with negative reviews (because for holding, we only need to have a restaurant x that provide takeOutService).(4) Premise 5: the original uses ⊕ (exclusive disjunction) but the NL says 'has a rating greater than four, or it is popular among local residents' — a simple inclusive disjunction with no exclusivity implied. Also, the original wraps the left disjunct as '∀x (HaveRating(hamdenPlazaSubway, x) ∧ GreaterThan(x, 4) ⊕ ...)' using universal quantification, which is incorrect — the rating is an existential property. Corrected to inclusive ∨ with existential: '(∃y (HaveRating(hamdenPlazaSubway, y) ∧ GreaterThan(y, 4)) ∨ PopularAmong(hamdenPlazaSubway, localResidents))'.
  Replaced '4' with 'four' to not create conflict with z3-parser
Sentence: If the Hamden Plaza Subway store provides take-out service and receives many negative reviews, then its rating is greater than 4 and it does not provide take-out service.
FOL: (Provide(hamdenPlazaSubway, takeOutService) ∧ ReceiveManyNegativeReviews(hamdenPlazaSubway)) → (∃y (HaveRating(hamdenPlazaSubway, y) ∧ GreaterThan(y, four)) ∧ ¬Provide(hamdenPlazaSubway, takeOutService))
Label: True
Correction notes: Three issues in the original FOL: (1) Unclosed parenthesis: the original '∃x ((TakeOutService(...) ∧ ... → ...)' has a misplaced opening parenthesis after ∃x, incorrectly scoping the entire conditional under the existential quantifier. The existential should only scope over the negative review variable x, not over the whole implication. Corrected by restructuring as a top-level conditional with ∃x scoped only over the NegativeReview conjunct. (2) The original consequent uses 'PopularAmong(hamdenPlazaSubway, localResidents)' but the NL says 'its rating is greater than 4' — these are entirely different properties. Corrected to 'RatingGreaterThan(hamdenPlazaSubway, 4)' to match the NL. (3) The original antecedent uses 'TakeOutService(hamdenPlazaSubway)' as a unary predicate (the store IS a takeout service) while the NL and consequent use 'Provide(hamdenPlazaSubway, takeOutService)' as a binary predicate (the store PROVIDES takeout service). Unified to use 'Provide(hamdenPlazaSubway, takeOutService)' in the antecedent for consistency with the consequent and the NL.
Sentence: The Hamden Plaza Subway store provides take-out service or does not receive many negative reviews.
FOL: Provide(hamdenPlazaSubway, takeOutService) ∨ ¬ReceiveManyNegativeReviews(hamdenPlazaSubway)
Label: True
Correction notes: ontology : two issues in the original: (1) The original wraps the entire disjunction under '∃x (...)', making it 'there exists a review x such that (Provide ∨ (NegativeReview(x) ∧ ¬Receive(...)))'. The existential is misplaced — 'Provide(hamdenPlazaSubway, takeOutService)' does not depend on x, and the second disjunct should express 'does not receive many negative reviews' as a negated existential rather than a positive existential with ¬Receive. Corrected to a top-level disjunction: 'Provide(hamdenPlazaSubway, takeOutService) ∨ ¬∃x (NegativeReview(x) ∧ Receive(hamdenPlazaSubway, x))'. (2) The label 'True' is derivable: premise 5 (corrected) gives either HaveRating > 4 or PopularAmong, both of which via premises 4→2 or directly via premise 2 yield ListedIn(hamdenPlazaSubway, yelpRecommendation), which by corrected premise 1 gives ¬∃y (NegativeReview(y) ∧ Receive(hamdenPlazaSubway, y)) — satisfying the second disjunct of the conclusion.
Sentence: The Hamden Plaza store does not provide take-out service.
FOL: ¬Provide(hamdenPlazaSubway, takeOutService)
Label: Uncertain
Sentence: In superhero movies, the good guys always win. The Surprising Adventures of Sir Digby Chicken Caesar is a superhero movie. Good guys fight bad guys and vice versa. Sir Digby fights his nemesis. If a superhero movie is named after a character, that character is a good guy. The Surprising Adventures of Sir Digby Chicken Caesar is named after Sir Digby. If somebody wins a fight, the person they are fighting does not win. If a superhero movie is named after a character, that character is in the movie.
FOL: ∀x ∀y (SuperheroMovie(x) ∧ In(y, x) ∧ GoodGuy(y) → Wins(y)) ∧ SuperheroMovie(theSurprisingAdventuresOfSirDigbyChickenCaesar) ∧ ∀x ∀y ((GoodGuy(x) ∧ BadGuy(y)) → (Fight(x, y) ∧ Fight(y, x))) ∧ Fight(sirDigby, sirDigbysNemesis) ∧ ∀x ∀y (SuperheroMovie(x) ∧ NamedAfter(x, y) → GoodGuy(y)) ∧ NamedAfter(theSurprisingAdventuresOfSirDigbyChickenCaesar, sirDigby) ∧ ∀x ∀y (Fight(x, y) ∧ Wins(x) → ¬Wins(y)) ∧ ∀x ∀y (SuperheroMovie(x) ∧ NamedAfter(x, y) → In(y, x))
Correction notes: (1) The original translation for Premise 3 is '∀x ∀y (GoodGuy(x) ∧ Fight(x, y) ↔ BadGuy(y) ∧ Fight(y, x))', that holds also when there are a good guy and a bad guy that don't fight each other (both the parts of the bi-implication are false); it is replaced with '∀x ∀y ((GoodGuy(x) ∧ BadGuy(y)) → (Fight(x, y) ∧ Fight(y, x)))', intended as ALL good guys fight bad guys (usually this is the menaning retained by this construct. (The conclusion labels are not affected by this formalization choice, even if some information that may be conceived by the author (like that if a good guy is fighting with another guy, then the latter is a bad guy) can lack with this formalization. [NOTE: if a different formalization doesn't affect the conclusion, this means that this formalization is not tested by the FOLIO approach!] (2) Premise 7: the original uses two different predicate names — 'Fights(x, y)' in the antecedent and 'Wins(y)' in the consequent, while premise 1 uses 'Wins(y)' and premise 4 uses 'Fight(x, y)' (without the trailing 's'). The predicate 'Fights' is a typo/inconsistency; corrected to 'Fight(x, y)' to unify with the predicate used in premises 3 and 4. (3) Premise 7: the original uses 'Win(x)' in the antecedent but 'Wins(y)' in the consequent — two different predicate names for the same concept. Unified to 'Wins' throughout for consistency with premise 1. (4) Constant casing: the original uses 'theSurprisingAdventuresofSirDigbyChickenCaesar' (lowercase 'of') in some places; normalised to 'theSurprisingAdventuresOfSirDigbyChickenCaesar' (camelCase 'Of') consistently throughout.
Sentence: Sir Digby's nemesis does not win.
FOL: ¬Wins(sirDigbysNemesis)
Label: True
Correction notes: The original uses '¬Win(sirDigbysNemesis)' with the predicate 'Win' (without trailing 's'), inconsistent with 'Wins' used in premises 1 and 7. Corrected to '¬Wins(sirDigbysNemesis)' for consistency.
Sentence: Books contain tons of knowledge. When a person reads a book, that person gains knowledge. If a person gains knowledge, they become smarter. Harry read the book 'Walden' by Henry Thoreau.
FOL: ∀x (Book(x) → Contains(x, knowledge)) ∧ ∀x ∀y (Book(x) ∧ ReadBook(y, x) → Gains(y, knowledge)) ∧ ∀x (Gains(x, knowledge) → Smarter(x)) ∧ ReadBook(harry, walden) ∧ Book(walden)
Correction notes: Added Book(x) in the seecond premises. One consideration: premise 4 in the original reads 'ReadBook(harry, walden) ∧ Book(walden)' — while 'Book(walden)' is not explicitly stated as a separate premise in the NL ('Harry read the book Walden' implies walden is a book), it is a reasonable and necessary grounding fact for the chain of reasoning to work (premise 1 requires Book(x) to fire). The original FOL correctly includes it as a conjunct in premise 4, so it is retained. However, note that premise 2 uses 'ReadBook(x, y)' without requiring Book(y) in the antecedent — meaning any ReadBook fact triggers Gains(x, knowledge) regardless of whether y is a book. This is a minor semantic looseness inherited from the original but not corrected as it does not affect the conclusions.
Sentence: Walden contains knowledge.
FOL: Contains(walden, knowledge)
Label: True
Correction notes: Significant NL/FOL mismatch in the original.
Sentence: Harry is smarter than before.
FOL: Smarter(harry)
Label: True
Sentence: A smarter person has gained knowledge.
FOL: ∀x (Smarter(x) → Gains(x, knowledge))
Label: Uncertain
Correction notes: The original FOL uses 'GainKnowledge(x)' as a unary predicate, which is inconsistent with the binary predicate 'Gains(x, knowledge)' used throughout the premises. The NL 'has gained knowledge' corresponds directly to 'Gains(x, knowledge)'; corrected to '∀x (Smarter(x) → Gains(x, knowledge))' for consistency.
Sentence: A natural language processing task can be categorized as either a language generation task or a language understanding task. If the output of a natural language processing task is a text sequence, then it is a language generation task. Machine translation is a natural language processing task. The output of machine translation is a text sequence.
FOL: ∀x (NaturalLanguageProcessingTask(x) ↔ LanguageGenerationTask(x) ⊕ LanguageUnderstandingTask(x)) ∧ ∀x (NaturalLanguageProcessingTask(x) ∧ OutputSequence(x, text) → LanguageGenerationTask(x)) ∧ NaturalLanguageProcessingTask(machineTranslation) ∧ OutputSequence(machineTranslation, text)
Correction notes: Ontology. One correction made: premise 2 in the original uses 'NaturalLanguageProcessingTasks(x)' (plural, with trailing 's') as the predicate name, inconsistent with 'NaturalLanguageProcessingTask(x)' (singular) used in premises 1, 3 and the conclusions. This is a typo that would make premise 2 refer to a completely different predicate, disconnecting the reasoning chain. Corrected to 'NaturalLanguageProcessingTask(x)' throughout.
Sentence: Machine translation is a language generation task.
FOL: LanguageGenerationTask(machineTranslation)
Label: True
Sentence: Machine translation is a language understanding task.
FOL: LanguageUnderstandingTask(machineTranslation)
Label: False
Sentence: Pets are allowed in some managed buildings. A deposit is required to rent an apartment in a managed building. The security deposit can be either equal to the monthly rent at a managed building or more. Fluffy is Tom's cat. Cats are pets. The Olive Garden is a managed building. The monthly rent at the Olive Garden is $2000. $2000 is more than $1500. Tom will rent an apartment in a managed building if he is allowed to move in with Fluffy, and the security deposit is no more than $1500. If a managed building allows pets, then people are allowed to move in with a pet.
FOL: ∃x (ManagedBuilding(x) ∧ AllowPet(x)) ∧ ∀x ∀y (ManagedBuilding(x) ∧ RentApartmentIn(y, x) → DepositRequired(y)) ∧ ∀x ∀y ∀z ((SecurityDeposit(x, z) ∧ ManagedBuilding(z) ∧ MonthlyRentAt(y, z)) → (MoreThan(x, y) ⊕ Equal(x, y))) ∧ Cat(fluffy) ∧ BelongTo(fluffy, tom) ∧ ∀x (Cat(x) → Pet(x)) ∧ ManagedBuilding(oliveGarden) ∧ MonthlyRentAt(uSD2000, oliveGarden) ∧ MoreThan(uSD2000, uSD1500) ∧ ∀x ∀y (ManagedBuilding(x) ∧ AllowedToMoveInWith(tom, x, fluffy) ∧ SecurityDeposit(y, x) ∧ ¬MoreThan(y, uSD1500) → RentApartmentIn(tom, x)) ∧ ∀x ∀y ∀z (ManagedBuilding(x) ∧ AllowPet(x) ∧ Pet(z) → AllowedToMoveInWith(y, x, z))
Correction notes: (1) It is used the two-witness choice to indicate 'some buildings': this makes the instance uniform to the other similar instances that used this grammatical construct (in the original dataset, the construct is treated inconsistently, one time with the two-witness choice, and another time with the single one). This doesn't affect the conclusions labels, so it is not considered as a correction. (2) Fixed the unclosed parenthesis in the original. (3) Premise 3 also implicitly treats SecurityDeposit as a unary predicate (one argument), but conclusion 95 uses it as a binary predicate 'SecurityDeposit(x, oliveGarden)'. This inconsistency is resolved by considering it as a binary predicate also in the premises.
Sentence: Tom will rent an apartment in The Olive Garden.
FOL: RentApartmentIn(tom, oliveGarden)
Label: Uncertain
Sentence: Tom is allowed to move into an apartment in The Olive Garden with Fluffy.
FOL: AllowedToMoveInWith(tom, oliveGarden, fluffy)
Label: Uncertain
Sentence: The security deposit at the Olive Garden is either $2000 or more.
FOL: ∀x (SecurityDeposit(x, oliveGarden) → (MoreThan(x, uSD2000) ⊕ Equal(x, uSD2000)))
Label: True
Correction notes: The binary form is more precise and appropriate for conclusion 95 (it specifies the deposit AT Olive Garden), and is arguably the better modelling choice throughout.
Sentence: All business organizations are legal entities. All companies are business organizations. All private companies are companies. All legal entities are created under law. All legal entities have legal obligations. If the Harvard Weekly Book Club is created under law, then it is not a private company.
FOL: ∀x (BusinessOrganization(x) → LegalEntity(x)) ∧ ∀x (Company(x) → BusinessOrganization(x)) ∧ ∀x (PrivateCompany(x) → Company(x)) ∧ ∀x (LegalEntity(x) → CreatedUnderLaw(x)) ∧ ∀x (LegalEntity(x) → LegalObligation(x)) ∧ (CreatedUnderLaw(harvardWeeklyBookClub) → ¬PrivateCompany(harvardWeeklyBookClub))
Sentence: The Harvard Weekly Book Club has legal obligations.
FOL: LegalObligation(harvardWeeklyBookClub)
Label: Uncertain
Sentence: The Harvard Weekly Book Club has legal obligations and is a private company.
FOL: LegalObligation(harvardWeeklyBookClub) ∧ PrivateCompany(harvardWeeklyBookClub)
Label: False
Sentence: If the Harvard Weekly Book Club is a private company, then it either has legal obligations or is created under law.
FOL: PrivateCompany(harvardWeeklyBookClub) → (LegalObligation(harvardWeeklyBookClub) ⊕ CreatedUnderLaw(harvardWeeklyBookClub))
Label: True
Correction notes: The original FOL omits the outer parentheses around the full implication, which could cause precedence ambiguity with the ⊕ operator potentially binding more tightly than →. Added explicit parentheses to scope the implication unambiguously
Sentence: Animals are either invertebrates or vertebrates. All animals with backbones reproduce by male-and-female mating. All vertebrate animals have a backbone. All bees do not reproduce by male-and-female mating. All queen bees are bees. Harry is a bee.
FOL: ∀x (Animal(x) → Invertebrate(x) ⊕ Vertebrate(x)) ∧ ∀x (Animal(x) ∧ HasBackbone(x) → ReproduceBy(x, maleAndFemaleMating)) ∧ ∀x (Animal(x) ∧ Vertebrate(x) → HasBackbone(x)) ∧ ∀x (Bee(x) → ¬ReproduceBy(x, maleAndFemaleMating)) ∧ ∀x (QueenBee(x) → Bee(x)) ∧ Bee(harry) ∧ ∀x (Bee(x) →  Animal(x))
Correction notes: Renamed only constants and predicate symbols (no correction, but suggestion). Added the formula '∀x (Bee(x) →  Animal(x))' because needed for the conclusions 100 and 101 to work with the label given by the authors.
Sentence: Harry is a queen bee.
FOL: QueenBee(harry)
Label: Uncertain
Sentence: Harry is an invertebrate or a queen bee.
FOL: Invertebrate(harry) ∨ QueenBee(harry)
Label: True
Correction notes: The label 'True' is only derivable if Bee(x) → Animal(x) is assumed as a background axiom (not stated in the premises). If this assumption is made, then Invertebrate(harry) follows and the disjunction is True. Without it, the label should arguably be 'Uncertain'. This missing axiom is a gap in the premise set and we added it in the premises.
Sentence: If Harry is either both a vertebrate and an animal with a backbone, or neither a vertebrate nor an animal with a backbone, then Harry is neither an invertebrate nor a queen bee.
FOL: ((Vertebrate(harry) ∧ HasBackbone(harry)) ∨ (¬Vertebrate(harry) ∧ ¬HasBackbone(harry))) → (¬Invertebrate(harry) ∧ ¬QueenBee(harry))
Label: False
Correction notes: Three issues in the original: (1) The original FOL '¬(Invertebrate(harry) ⊕ With(harry, backbone))' uses Invertebrate instead of Vertebrate in the antecedent — a predicate substitution error inconsistent with the NL which refers to 'vertebrate'. Corrected to '¬(Vertebrate(harry) ⊕ HasBackbone(harry))'. (2) The predicate 'With(harry, backbone)' corrected to 'HasBackbone(harry)' as per the premise corrections. (3) Added outer parentheses for unambiguous scoping of the full conditional.