P3: the cash flow statement by ASC 230 (defect 1, D-35, D-42)
check / check (push) Canceled after 0s

Direct method with the operating reconciliation and noncash schedules; it
foots by construction (Lean and Kani). Every non-cash account belongs to
one section; reversals net; a member or lender paying for the company is
cash borrowed and spent (D-42, constructive receipt and disbursement);
property a member contributes stays noncash. The bookspec seed: one loader
checks every example.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T3gXMVt7XJPi6ens1or9Dj
This commit is contained in:
swaitsandClaude Opus 5.5 committed 2026-10-21 09:35:32 -06:00
1 parent 2c29d48ab9
commit eb4329bb2a
64 files changed
+12128 -1567

No files matched your search

+20 -12
View File
@@ -1821,19 +1821,27 @@ fn every_figure_of(l: &ledger_core::Ledger) -> (usize, usize) {
tally(reports::profit_and_loss_for_period(l, start, end, None).map(|_| ()));
tally(reports::general_ledger(l, start, end).map(|_| ()));
tally(reports::members_equity(l, start, end, &members).map(|_| ()));
tally(
reports::cash_flow(
l,
&reports::CashFlowParams {
start,
end,
cash_accounts: cash.clone(),
financing_accounts: vec![],
investing_accounts: vec![],
},
)
.map(|_| ()),
// The statement of cash flows foots on every book, or is refused
// for a reason: never an engine error (rules.md B-14 rule 9).
let cf = reports::cash_flow(
l,
&reports::CashFlowParams {
start,
end,
cash_accounts: cash.clone(),
financing_accounts: vec![],
investing_accounts: vec![],
members: members.clone(),
},
);
assert!(
!matches!(
cf,
Err(ledger_core::LedgerError::CashFlowDoesNotFoot { .. })
),
"{cf:?}"
);
tally(cf.map(|_| ()));
tally(ledger_core::k1::k1_worksheet(l, start, end, &members, &cash).map(|_| ()));
tally(ledger_core::tax_summary(l, start, end, None).map(|_| ()));
let _ = reports::cancelled_in_span(l, start, end);