/**
 * THEOREM 1: GF(2^8) Field Axioms
 *
 * GF(2^8) with irreducible polynomial p(x) = x^8 + x^4 + x^3 + x + 1 (0x11B)
 * forms a field with 256 elements.
 *
 * PROOF OUTLINE:
 *
 * 1. CLOSURE under addition and multiplication:
 *    - Addition (XOR) of two bytes produces a byte: (a XOR b) in [0, 255]
 *    - Multiplication with reduction mod p(x) produces an element in [0, 255]
 *
 * 2. ASSOCIATIVITY:
 *    - Addition: (a XOR b) XOR c = a XOR (b XOR c) (property of XOR)
 *    - Multiplication: Follows from polynomial arithmetic properties
 *
 * 3. COMMUTATIVITY:
 *    - Addition: a XOR b = b XOR a
 *    - Multiplication: a * b = b * a (polynomial multiplication is commutative)
 *
 * 4. IDENTITY elements:
 *    - Additive identity: 0 (a XOR 0 = a)
 *    - Multiplicative identity: 1 (a * 1 = a)
 *
 * 5. INVERSE elements:
 *    - Additive inverse: a + a = 0 (every element is its own inverse in char 2)
 *    - Multiplicative inverse: For a != 0, exists b such that a * b = 1
 *      (guaranteed since GF(2^8) is a field)
 *
 * 6. DISTRIBUTIVITY:
 *    - a * (b + c) = (a * b) + (a * c)
 *    - Follows from polynomial arithmetic over GF(2)
 *
 * IRREDUCIBILITY of p(x) = x^8 + x^4 + x^3 + x + 1:
 * - p(x) has no roots in GF(2): p(0) = 1, p(1) = 1 + 1 + 1 + 1 + 1 = 1 (mod 2)
 * - p(x) is not divisible by any irreducible polynomial of degree 2, 3, or 4
 * - This is verified by exhaustive check (standard result, see FIPS 197)
 *
 * Reference: FIPS 197 (AES specification), Section 4.1
 */
export declare function verifyFieldAxioms(): {
    passed: boolean;
    details: {
        closure: boolean;
        associativity: boolean;
        commutativity: boolean;
        identity: boolean;
        inverse: boolean;
        distributivity: boolean;
    };
};
/**
 * THEOREM 2: Lagrange Interpolation Uniqueness and Correctness
 *
 * STATEMENT:
 * Given n distinct points (x_1, y_1), ..., (x_n, y_n) in a field F,
 * there exists a unique polynomial p(x) of degree at most n-1 such that
 * p(x_i) = y_i for all i.
 *
 * PROOF:
 *
 * EXISTENCE:
 * Define the Lagrange basis polynomials:
 *   L_i(x) = Product_{j != i} (x - x_j) / (x_i - x_j)
 *
 * Properties of L_i:
 *   - L_i(x_i) = 1 (all terms in the product equal 1)
 *   - L_i(x_j) = 0 for j != i (numerator contains factor (x - x_j) = 0)
 *   - degree(L_i) = n - 1
 *
 * The interpolating polynomial is:
 *   p(x) = Sum_{i=1}^{n} y_i * L_i(x)
 *
 * Verification:
 *   p(x_k) = Sum_{i=1}^{n} y_i * L_i(x_k)
 *          = y_k * L_k(x_k) + Sum_{i != k} y_i * L_i(x_k)
 *          = y_k * 1 + Sum_{i != k} y_i * 0
 *          = y_k
 *
 * UNIQUENESS:
 * Suppose p(x) and q(x) both interpolate the points, both with degree <= n-1.
 * Then r(x) = p(x) - q(x) has:
 *   - degree <= n-1
 *   - r(x_i) = 0 for all i (n roots)
 *
 * A non-zero polynomial of degree d has at most d roots.
 * Since r has n roots but degree <= n-1, we must have r = 0.
 * Therefore p = q.
 *
 * APPLICATION TO SHAMIR:
 * For Shamir's scheme with threshold k:
 *   - Secret is f(0) where f is a polynomial of degree k-1
 *   - Given k shares (x_i, f(x_i)), Lagrange interpolation recovers f uniquely
 *   - Then f(0) = secret
 *
 * Reference: "How to Share a Secret" by Adi Shamir, CACM 1979
 */
export declare function verifyLagrangeInterpolation(): {
    passed: boolean;
    testResults: Array<{
        description: string;
        passed: boolean;
        expected?: number;
        actual?: number;
    }>;
};
/**
 * THEOREM 3: Information-Theoretic Security
 *
 * STATEMENT:
 * In a (k, n) Shamir secret sharing scheme, any subset of k-1 or fewer shares
 * provides zero information about the secret. This is information-theoretic
 * security, not computational security.
 *
 * PROOF:
 *
 * Let S be the secret and let (x_1, y_1), ..., (x_{k-1}, y_{k-1}) be k-1 shares.
 *
 * We must show: For any possible secret value s in the field,
 *   P(S = s | shares) = P(S = s)
 *
 * Analysis:
 * 1. The polynomial f(x) has degree k-1, with k coefficients: f(x) = a_0 + a_1*x + ... + a_{k-1}*x^{k-1}
 * 2. The secret is a_0 = f(0)
 * 3. Given k-1 points, we have k-1 linear equations in k unknowns
 * 4. This system is underdetermined
 *
 * For any value of a_0 = s:
 * - The remaining k-1 unknowns (a_1, ..., a_{k-1}) form a system of k-1 equations
 * - This system has a unique solution (Lagrange interpolation through k-1 points with
 *   the constraint that f(0) = s)
 *
 * Therefore:
 * - Every possible secret s is equally consistent with the k-1 shares
 * - The k-1 shares provide zero bits of information about s
 * - This is perfect secrecy in the information-theoretic sense
 *
 * COROLLARY:
 * The mutual information I(S; Y_1, ..., Y_{k-1}) = 0
 * where Y_i are the share values.
 *
 * Reference: "How to Share a Secret" by Adi Shamir, CACM 1979
 * Reference: Cover & Thomas, "Elements of Information Theory"
 */
export declare function verifyPerfectSecrecy(): {
    passed: boolean;
    description: string;
    analysis: {
        testedSecrets: number;
        testedShareCombinations: number;
        allSecretsConsistent: boolean;
    };
};
/**
 * THEOREM 4: Reconstruction Completeness
 *
 * STATEMENT:
 * Any k shares from a (k, n) Shamir secret sharing scheme can reconstruct
 * the original secret.
 *
 * PROOF:
 *
 * Setup:
 * - Original polynomial f(x) has degree k-1
 * - f(0) = secret
 * - Shares are (x_i, f(x_i)) for i = 1, ..., n
 *
 * Given any k shares (x_{i_1}, y_{i_1}), ..., (x_{i_k}, y_{i_k}):
 *
 * 1. By Theorem 2 (Lagrange Interpolation), there exists a unique polynomial
 *    p(x) of degree at most k-1 that passes through these k points.
 *
 * 2. Since f(x) also passes through these points and has degree k-1,
 *    by uniqueness we have p(x) = f(x).
 *
 * 3. Therefore p(0) = f(0) = secret.
 *
 * The reconstruction is deterministic and always succeeds given k valid shares.
 *
 * COROLLARY:
 * The choice of which k shares to use does not affect the result.
 * All C(n, k) combinations of k shares reconstruct the same secret.
 *
 * Reference: "How to Share a Secret" by Adi Shamir, CACM 1979
 */
export declare function verifyReconstructionCompleteness(): {
    passed: boolean;
    testResults: Array<{
        threshold: number;
        totalShares: number;
        secret: number;
        combinationsTested: number;
        allSucceeded: boolean;
    }>;
};
/**
 * THEOREM 5: Generator Properties of g = 0x03
 *
 * STATEMENT:
 * The element g = 3 is a generator of the multiplicative group GF(2^8)*.
 * This means g has order 255, and every non-zero element of GF(2^8) can be
 * written as g^i for some i in {0, 1, ..., 254}.
 *
 * PROOF:
 *
 * The multiplicative group GF(2^8)* has 255 elements (all non-zero elements).
 * By Lagrange's theorem, the order of any element divides 255.
 *
 * 255 = 3 * 5 * 17
 *
 * An element g generates the group iff g^(255/p) != 1 for each prime divisor p.
 *
 * For g = 3:
 * - 3^(255/3) = 3^85 != 1 (verified by computation)
 * - 3^(255/5) = 3^51 != 1 (verified by computation)
 * - 3^(255/17) = 3^15 != 1 (verified by computation)
 *
 * Therefore ord(g) = 255 and g generates GF(2^8)*.
 *
 * COROLLARY:
 * The EXP_TABLE contains all 255 non-zero elements of GF(2^8) exactly once.
 * The LOG_TABLE provides a bijection from GF(2^8)* to Z_255.
 */
export declare function verifyGeneratorProperties(): {
    passed: boolean;
    details: {
        generatorValue: number;
        computedOrder: number;
        expectedOrder: number;
        allElementsGenerated: boolean;
        expTableCorrect: boolean;
        logTableCorrect: boolean;
    };
};
/**
 * Run all proofs and return comprehensive verification results.
 */
export declare function runAllProofs(): {
    allPassed: boolean;
    proofs: Array<{
        name: string;
        passed: boolean;
        details: unknown;
    }>;
};
//# sourceMappingURL=proofs.d.ts.map