pub struct InferenceProof {
pub model_commitment: ModelCommitment,
pub input_hash: Hash256,
pub output_hash: Hash256,
pub proof: Hash256,
pub verification_tag: Hash256,
pub prompt_hash: Option<Hash256>,
pub human_attestation: Option<HumanAttestation>,
pub ai_delta: Option<AiDelta>,
pub daubert_checklist: Option<DaubertChecklist>,
}Expand description
Proof that an inference was correctly executed.
The core fields (model_commitment, input_hash, output_hash, proof,
verification_tag) are always present and backward-compatible with
existing serialized proofs.
The provenance fields (prompt_hash, human_attestation, ai_delta,
daubert_checklist) are Option<T> with serde(default) so that
pre-existing serialized proofs continue to deserialize.
Fields§
§model_commitment: ModelCommitmentThe model commitment.
input_hash: Hash256Hash of the contextual input data (context window / user message).
output_hash: Hash256Hash of the output data.
proof: Hash256The cryptographic proof binding input -> model -> output.
verification_tag: Hash256Auxiliary verification data.
prompt_hash: Option<Hash256>Hash of the system/user prompt (distinct from input_hash).
Separating prompt from context allows courts to assess whether the AI was directed toward a particular outcome.
human_attestation: Option<HumanAttestation>Signed human attestation: did the reviewer adopt, modify, or reject?
ai_delta: Option<AiDelta>Divergence record comparing AI recommendation to final human decision.
daubert_checklist: Option<DaubertChecklist>Daubert admissibility checklist for FRE 702 compliance.
Implementations§
Source§impl InferenceProof
impl InferenceProof
Sourcepub fn daubert_admissibility_status(&self) -> DaubertAdmissibility
pub fn daubert_admissibility_status(&self) -> DaubertAdmissibility
Return the fail-closed Daubert admissibility status for this proof.
Trait Implementations§
Source§impl Clone for InferenceProof
impl Clone for InferenceProof
Source§fn clone(&self) -> InferenceProof
fn clone(&self) -> InferenceProof
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for InferenceProof
impl Debug for InferenceProof
Source§impl<'de> Deserialize<'de> for InferenceProof
impl<'de> Deserialize<'de> for InferenceProof
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for InferenceProof
Source§impl PartialEq for InferenceProof
impl PartialEq for InferenceProof
Source§impl Serialize for InferenceProof
impl Serialize for InferenceProof
impl StructuralPartialEq for InferenceProof
Auto Trait Implementations§
impl Freeze for InferenceProof
impl RefUnwindSafe for InferenceProof
impl Send for InferenceProof
impl Sync for InferenceProof
impl Unpin for InferenceProof
impl UnsafeUnpin for InferenceProof
impl UnwindSafe for InferenceProof
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more