/// <summary> /// Initializes a new instance of the <see cref="TheoremProof"/> class. /// </summary> /// <param name="theorem">The proved theorem.</param> /// <param name="data">The metadata of the proof.</param> /// <param name="provedAssumptions">The proved assumptions.</param> public TheoremProof(Theorem theorem, TheoremInferenceData data, IReadOnlyList <TheoremProof> provedAssumptions) { Theorem = theorem ?? throw new ArgumentNullException(nameof(theorem)); Data = data ?? throw new ArgumentNullException(nameof(data)); ProvedAssumptions = provedAssumptions ?? throw new ArgumentNullException(nameof(provedAssumptions)); }
/// <summary> /// Initializes a new instance of the <see cref="ProofData"/> class. /// </summary> /// <param name="proofBuilder">The proof builder that builds actual <see cref="TheoremProof"/> instances.</param> /// <param name="inferenceData">The data explaining a theorem inference.</param> /// <param name="assumptions">The assumptions of a theorem inference.</param> public ProofData(TheoremProofBuilder proofBuilder, TheoremInferenceData inferenceData, IReadOnlyList <Theorem> assumptions) { ProofBuilder = proofBuilder ?? throw new ArgumentNullException(nameof(proofBuilder)); InferenceData = inferenceData ?? throw new ArgumentNullException(nameof(inferenceData)); Assumptions = assumptions ?? throw new ArgumentNullException(nameof(assumptions)); }