coq
Ricerca di un fatto esistente con Ricerca e varianti
Ricerca…
Sintassi
-
Search qualid.(* per Coq 8.4 e versioni più recenti *) -
SearchAbout qualid.(* sinonimo deprecato. *)
Parametri
| Parametro | Descrizione |
|---|---|
qualid | L'identificatore o il modello da cercare. Può coinvolgere le notazioni |
Osservazioni
Prima di Coq 8.4, la Search aveva il significato dell'attuale SearchHead : cerca solo i fatti in cui il modello corrisponde alla conclusione dell'istruzione.
Fatti su un identificatore particolare
Per vedere tutti i fatti che coinvolgono il le relazione dal preludio:
Coq < Search le.
le_n: forall n : nat, n <= n
le_S: forall n m : nat, n <= m -> n <= S m
...
max_l: forall n m : nat, m <= n -> Nat.max n m = n
max_r: forall n m : nat, n <= m -> Nat.max n m = m
...
Per cercare su tutti i fatti che riguardano la notazione < :
Coq < Search "<".
exists_lt: forall (Q : nat -> Prop) (k l : nat), exists_between Q k l -> k < l
in_int_intro: forall p q r : nat, p <= r -> r < q -> in_int p q r
in_int_lt: forall p q r : nat, in_int p q r -> p < q
...
Alla ricerca di un modello
Cerca tutti i fatti che coinvolgono un modello in un'ipotesi o conclusione:
Coq < Search (_ + O).
plus_n_O: forall n : nat, n = n + 0
Il carattere _ funge da carattere jolly e può essere utilizzato più volte:
Coq < Search (S _ <= _).
le_S_n: forall n m : nat, S n <= S m -> n <= m
le_n_S: forall n m : nat, n <= m -> S n <= S m
Puoi anche cercare modelli non lineari:
Coq < Search (?x <= ?x).
le_n: forall n : nat, n <= n
Alla ricerca di un modello nella conclusione di un lemma
Cerca un lemma quando sai quale dovrebbe essere la sua conclusione:
Coq < SearchPattern (S _ <= _).
le_n_S: forall n m : nat, n <= m -> S n <= S m
Puoi anche cercare una conclusione parziale (la conclusione e una o più ipotesi).
Coq < Require Import Arith.
Coq < SearchPattern (?x <= ?y -> ?y <= _ -> ?x <= _).
Nat.le_trans: forall n m p : nat, n <= m -> m <= p -> n <= p
Attenzione: se mischi l'ordine delle ipotesi, non troverai nulla:
Coq < SearchPattern (?y <= _ -> ?x <= ?y -> ?x <= _).
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow