Ana içeriğe geç
Dil v0.2.0 · Ön izleme

Deterministik N/M property assertion'ları

Sabit tohumlu sonlu örnek toleranslarını, kapsayıcı gözlenebilir aralıklarını, açık global faz eşdeğerliğini ve denetlenebilir özellik karşı örneklerini uzlaştırın.

Deterministik N/M 0.2 property assertion'ları

NM-RFC-0003 finite-shot kontrollerini, observable sınırlarını ve global-faz eşdeğerliğini açık, makine-okur sözleşmelere dönüştürür. Feature uzlaşılmadıkça kararlı 0.1 parser değişmez.

NM-RFC-0003deneysel0.2.0-runtime-experimental
32
property case
1
maks. tolerans
1.000.000
maks. |sınır|

Seed'li shot toleransı

~= biçimi hem @seed hem @shots ister. Her property case türetilmiş ayrı random stream alır; sampled değer, analitik değer, standart hata, shot sayısı ve tolerans kaydedilir.

assert probability(|bits>) ~= expected tolerance delta;

Kapsayıcı observable aralığı

in [minimum, maximum] biçimi tam ağırlıklı observable'ı analitik değerlendirir ve sınırlı sayısal epsilon ile iki ucu da kapsar.

assert expectation <observable> in [minimum, maximum];

Global faza kadar eşdeğerlik

up_to_phase, phasePolicy=global kaydeder ve state fidelity karşılaştırır. Global exp(iφ) çarpanı sonucu değiştiremez.

assert equivalent("target") up_to_phase;

Denetlenebilir karşı-örnekler

Yürütme ilk başarısız property case'te durur; parametre değeri, türetilmiş seed, sıralı assertion kanıtı ve kararlı tanı kodları korunur.

fnv1a32(base-seed,property-name,parameter,canonical-value)

Deneysel kaynak

module property_assertions;@seed(17);@shots(256); fn main() {  property "phase-safe plus" {    forall theta in 0 .. PI step PI / 2 {      let q: QReg<1> = qreg[1];      GPhase(theta);      H(q[0]);      assert probability(|0>) ~= 0.5 tolerance 0.1;      assert expectation Z(q[0]) in [-1, 1];      assert equivalent("plus") up_to_phase;    }  }  return 0;}

Açık yüzey uzlaşması

Core çağrıları parser seçeneğini iletir; CLI, LSP ve VS Code ayrı opt-in sunar. Varsayılan kapalı kaldığı için deneysel syntax kararlı projelere sessizce giremez.

parseNMCode(source, { experimental: { propertyAssertions: true } })nm test main.nm --experimental-property-assertionsinitializationOptions.nm.experimental.propertyAssertions = truenm.experimental.propertyAssertions = true

Kararlı tanılar

NM-PARSE-056NM-PARSE-057NM-PARSE-058NM-PARSE-059NM-ASSERT-007NM-ASSERT-008NM-ASSERT-009

Bu deneysel dilim keyfi generator, shrinking, confidence interval, assertion başına shot, density-matrix eşdeğerliği veya tüm hataları toplama özelliğini kapsamaz. FNV seed türetimi güvenlik için değil tekrar üretilebilirlik içindir.