<commit_before>package edu.osu.cse.groenkeb.logic.model.rules

import edu.osu.cse.groenkeb.logic.AtomicSentence
import edu.osu.cse.groenkeb.logic.Sentence
import edu.osu.cse.groenkeb.logic.Sentences
import edu.osu.cse.groenkeb.logic.model.FirstOrderModel
import edu.osu.cse.groenkeb.logic.proof.rules.CompleteResult
import edu.osu.cse.groenkeb.logic.proof.rules.EmptyArgs
import edu.osu.cse.groenkeb.logic.proof.rules.NullResult
import edu.osu.cse.groenkeb.logic.proof.rules.Rule
import edu.osu.cse.groenkeb.logic.proof.rules.RuleArgs
import edu.osu.cse.groenkeb.logic.proof.types.CompleteProof
import edu.osu.cse.groenkeb.logic.proof.types.Conclusion
import edu.osu.cse.groenkeb.logic.proof.types.NullProof
import edu.osu.cse.groenkeb.logic.proof.types.Proof

abstract class ModelRule(val model: FirstOrderModel) extends Rule
case class ExistenceRule(m: FirstOrderModel) extends ModelRule(m) {
  def accepts(proof: Proof) = proof match {
    case NullProof(_) => true
    case _ => false
  }
  
  def yields(conc: Sentence) = conc match {
    case AtomicSentence(atom) => model.verify(conc)
    case _ => false
  }
  
  def infer(conc: Sentence)(args: RuleArgs) = conc match {
    case AtomicSentence(atom) => args match {
      case EmptyArgs() if model.verify(conc) => CompleteResult(CompleteProof(Conclusion(conc, this, args), Nil))
      case EmptyArgs() if !model.verify(conc) => CompleteResult(CompleteProof(Conclusion(Sentences.absurdity, this, args), Nil))
      case _ => NullResult()
    }
    case _ => NullResult()
  }
}
<commit_msg>Fix another sneaky compile error.<commit_after>package edu.osu.cse.groenkeb.logic.model.rules

import edu.osu.cse.groenkeb.logic.AtomicSentence
import edu.osu.cse.groenkeb.logic.Sentence
import edu.osu.cse.groenkeb.logic.Sentences
import edu.osu.cse.groenkeb.logic.model.FirstOrderModel
import edu.osu.cse.groenkeb.logic.proof.rules.CompleteResult
import edu.osu.cse.groenkeb.logic.proof.rules.EmptyArgs
import edu.osu.cse.groenkeb.logic.proof.rules.NullResult
import edu.osu.cse.groenkeb.logic.proof.rules.Rule
import edu.osu.cse.groenkeb.logic.proof.rules.RuleArgs
import edu.osu.cse.groenkeb.logic.proof.types.CompleteProof
import edu.osu.cse.groenkeb.logic.proof.types.Conclusion
import edu.osu.cse.groenkeb.logic.proof.types.NullProof
import edu.osu.cse.groenkeb.logic.proof.types.Proof
import edu.osu.cse.groenkeb.logic.Absurdity

abstract class ModelRule(val model: FirstOrderModel) extends Rule
case class ExistenceRule(m: FirstOrderModel) extends ModelRule(m) {
  def accepts(proof: Proof) = proof match {
    case NullProof(_) => true
    case _ => false
  }
  
  def yields(conc: Sentence) = conc match {
    case AtomicSentence(atom) => model.verify(conc)
    case _ => false
  }
  
  def infer(conc: Sentence)(args: RuleArgs) = conc match {
    case AtomicSentence(atom) => args match {
      case EmptyArgs() if model.verify(conc) => CompleteResult(CompleteProof(Conclusion(conc, this, args), Nil))
      case EmptyArgs() if !model.verify(conc) => CompleteResult(CompleteProof(Conclusion(Absurdity(), this, args), Nil))
      case _ => NullResult()
    }
    case _ => NullResult()
  }
}

{'fraction_non_alphanumeric': 0.1210292249047014, 'fraction_numerical': 0.0, 'mean_word_length': 4.563604240282685, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7250837', 'n_tokens_mistral': 1197, 'n_tokens_neox': 1143, 'n_words': 188}