from app.schemas.visual_lesson import EvidenceClaim, EvidenceSource class ArrayAlgorithmEvidenceResolver: async def resolve(self) -> tuple[list[EvidenceSource], list[EvidenceClaim]]: source = EvidenceSource(source_id="builtin:clrs-sorting-search", origin="builtin", title="Introduction to Algorithms — Sorting and Searching", excerpt="Canonical reference metadata for comparison sorting, partitioning, merging, linear search, and binary search.", authority="canonical") claims = [ EvidenceClaim(claim_id="array-sorting", text="A correct sorting algorithm returns the input values in nondecreasing order while preserving every input occurrence.", claim_type="standard_definition", support_level="canonical", source_ids=[source.source_id]), EvidenceClaim(claim_id="array-search", text="Linear search examines candidates sequentially; binary search repeatedly halves a sorted search interval.", claim_type="standard_definition", support_level="canonical", source_ids=[source.source_id]), EvidenceClaim(claim_id="array-binary-precondition", text="Binary search requires the array to be sorted under the same ordering used by the search.", claim_type="standard_definition", support_level="canonical", source_ids=[source.source_id]), ] return [source], claims