THE LAST TEMPTATION OF CHRIST (1988) A Film Review by Ted Prigge Copyright 1997 Ted Prigge
Director: Martin Scorsese Writer: Paul Schrader (based on the novel by Nikos Kazantzakis) Starring: Willem Dafoe, Harvey Keitel, Barbara Hershey, Verna Bloom, Harry Dean Stanton, David Bowie, Andre Gregory, Juliette Caton, Victor Argo, Irvin Kershner, John Lurie, Barry Miller
What happened if Jesus Christ was given a choice in whether or not he was crucified and died "for our sins?" What if Jesus wasn't as perfect as he is said to be, and was instead a human being, almost cursed with the thought that he was the Messiah, the son of God? Director Martin Scorsese's epic motion picture, which retells the traditional story of Jesus in a whole other manner ponders these questions, and does it in a way that presents a kind of film that is extrememly rare: a philospophical motion picture.
Based on the novel by Nikos Kazantzakis, the story tells the latter part of Jesus's life (played by Willem Dafoe, who, well, looks like Jesus...or the general perception of him), with most of the pretty important parts (like the Sermon on the Mount, the whole fasting in the desert with the temptations of Satan, the Last Supper, etc.) being told, but in a way that shows that Jesus was a human being. I've never read the bible personally, but when you're forced to go to church for the first 18 years of your life, you do hear a lot of stories from the bible, and one of the big myths is that Jesus was a flawless man. This film breaks him down to be a man.
Of course, why wouldn't he be a regular man with a tremendous burden on his shoulders? Although being born to a virgin woman (played by Verna Bloom, who was also Dean Wormer's wife in "Animal House"), he still grew up a man. It seems that him being perfect was just a myth in the bible, a way that the different men who wrote it bent the truth a bit to touch people (which is touched upon later in the film).
The film poses the question "What would happen if Jesus was able to live like the average human being?" Luckily, it doesn't arrive at this question until the two-hour mark. Before this time, the film shows his life prior to the crucifixtion where he is told he's allowed to come off the cross and be a regular schmo by a young female angel (Juliette Caton). Why is it lucky they did this? Because the film would seem gimicky if they had just jumped to it without backing itself up.
For the first two hours, the film tells his early story, from when he's making crosses for the romans, to when he's being followed around by Judas (Harvey Keitel) and eleven other apostles, to his inevitable crucifixtion. Not being of great knowledge as to his mid-life (the most details I know about are his birth and death, since the Christmas and Easter seasons are so close together on the church calendar), I don't know how much is true, but this is a work of fiction, since everything has a new twist to it.
For example, he is constantly confessing his fear of living the way he does, and shows constant apprehension to die for everyone else, which brings on the anger of Judas, who calls him a coward throughout the film. He also has to suffer the cruelties of others thinking of him as a madman, as he does sound like one a lot of the time. And, of course, he suffers scrutiny for taking into his little clique the prostitute, Mary Magdalene (Barbara Hershey, saddled with a near impossible role of being the woman who is the object of Jesus's affection), since he's supposed to be this big sign of purity.
The final forty-five minutes of the film chronicle his life after being let down of the cross, where he marries another woman named Mary (hinting at an oedipal complex with his mother, also named Mary...or maybe not...), and settles down to a simple and happy life, with lots of children. There is a powerful ironic ending which thankfully stays in tact with the rest of the film. Also, instead of being just a cheap ironic twist, it spurns out a deeper philosophical idea, which makes this a brilliant work of biblical satire.
The way the film is constructed is interesting, as it seems to bring out a fascination Scorsese has with his best works: concentrating on a person or persons who are trapped by a lifestyle or something deeper. In "Goodfellas" and "Casino," the mafiosos were trapped by the lifestyle they had chosen; and in "Raging Bull," Jake LaMotta was trapped in the world of boxing, the boxing ring being a metaphor for his life. Jesus is similarly trapped, but by the fact that God chose him to be his son. It's a tragedy of a movie, as Jesus discovers that his place was never to be a man like everyone else, but to be the ultimate martyr - to stop death, and save everyone's soul.
The direction is very bizarre, and creates a film that is extremely surreal. The opening is dizzying, probably to get the sense of the confusion Jesus is suffering at the particular point in his life. And there's lots of scenes of nudity, blood, and assorted gore, including a freaky deaky scene where Jesus approaches his desciples after fasting in the desert, and he pulls out his heart and holds it in front of them. The surrealism helps the film, though, and also creates a hypnotic feel to it, which holds the audience's attention the full way through.
Unfortunately, as brilliant and philosophical as it is, the film is one of the most controversial pieces of art of all time. Like Monty Python's "Life of Brian" (which was a comedy that dealt with a man mistaken for Christ, but not once picking on Christ himself), the film spurned a lot of picketing, featuring people who had mostly not even seen the movie. It's a shame that people are so narrow-minded and don't take a chance of expanding their thinking to something higher and more profound.  But it's not pornographic, and never flashy - it's just poignant. People need to realize that just because a piece of art expounds on the "holy scriptures," it doesn't necessarily mean it's "blasphemy." The passages in the bible were meant to be thought about in such a manner. At least that's my opinion; I could be wrong.
The acting is not amazing, but does feature a wonderful performance from Willem Dafoe, who creates a sympathetic and pithy Jesus. This man is no Brian Deacon - he shows Jesus in a completely different way, and he pulls it off amazingly. Harvey Keitel is a great Judas (sorry, folks, there is no hanging scene), and there are two great cameos from character actor Harry Dean Stanton as Saul/Paul (see the movie to understand this), and David Bowie as none other than Pontious Pilate (he rocks in his one scene).
Scorsese received a well-deserved Oscar nomination for his directing, which is luckily never heavy-handed or preachy. Every scene is a mini-masterpiece (save a corny scene where Jesus raises Lazarus from the dead), as he paints each scene with the appropriate feel. He shows he is once again one of the best directors, if not the best, working today.
"The Last Temptation of Christ" is one of those hard-to-find films which is overly-bashed for moronic reasons. I'm not even a Christian (agnostic, if you must know), but I found the film to be a poignant, and brilliant way to look at the gospels of Jesus.
MY RATING (out of 4): ****
Homepage at: http://www.geocities.com/Hollywood/Hills/8335/
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Raving Rabid Rabbits
Ahhhh!!

Humbug!
A short description about yourself:
Select which pet you prefer
Rabid Rabbit
Chickenpoxed chicken


| Global Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (440 entries) |
| Notation Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (6 entries) |
| Library Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (39 entries) |
| Lemma Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (82 entries) |
| Constructor Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (9 entries) |
| Projection Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (31 entries) |
| Inductive Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (8 entries) |
| Instance Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (52 entries) |
| Section Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (13 entries) |
| Abbreviation Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (1 entry) |
| Definition Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (184 entries) |
| Record Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (15 entries) |
Global Index
A
Absorptive [record, in Embed.Theory.Lattice]Absorptive [inductive, in Embed.Theory.Lattice]
absorptivity [projection, in Embed.Theory.Lattice]
absorptivity [constructor, in Embed.Theory.Lattice]
abstract_prod_l [instance, in Embed.Theory.Datatypes.Prod]
abstract_prod_l_from [definition, in Embed.Theory.Datatypes.Prod]
abstract_prod_l_to [definition, in Embed.Theory.Datatypes.Prod]
affine [projection, in Embed.Theory.Type.Affine]
Affine [record, in Embed.Theory.Type.Affine]
affine [constructor, in Embed.Theory.Type.Affine]
Affine [inductive, in Embed.Theory.Type.Affine]
Affine [library]
affine_iff_iso [instance, in Embed.Theory.Type.Affine]
AllIn [definition, in Embed.Theory.Datatypes.List]
and_or_Distributive [instance, in Embed.Theory.Btree.Lattice]
and_or_distributive [definition, in Embed.Theory.Btree.Lattice]
and_or_Absorptive [instance, in Embed.Theory.Btree.Lattice]
and_or_absorptive [definition, in Embed.Theory.Btree.Lattice]
and_btree_Associative [instance, in Embed.Theory.Btree.Lattice]
and_btree_associative [definition, in Embed.Theory.Btree.Lattice]
and_btree_Commutative [instance, in Embed.Theory.Btree.Lattice]
and_btree_Idempotent [instance, in Embed.Theory.Btree.Lattice]
and_btree [definition, in Embed.Theory.Btree.Lattice]
Associative [record, in Embed.Theory.Lattice]
Associative [inductive, in Embed.Theory.Lattice]
associativity [projection, in Embed.Theory.Lattice]
associativity [constructor, in Embed.Theory.Lattice]
assoc_join_zip_btrees [lemma, in Embed.Theory.Bforest.Zip]
assoc_join_zip_btrees_err [definition, in Embed.Theory.Bforest.Zip]
assoc_join_zip_btree_err [definition, in Embed.Theory.Bforest.Zip]
B
bcons [constructor, in Embed.Theory.Btree]bcons_eq [definition, in Embed.Theory.Btree]
BextensionC [instance, in Embed.Theory.Btree.Segment]
bforest [definition, in Embed.Theory.Bforest]
Bforest [library]
BforestC [instance, in Embed.Theory.Bforest]
bforest_btree [definition, in Embed.Theory.Bforest]
ble [definition, in Embed.Theory.Btree.Segment]
ble_consistent [definition, in Embed.Theory.Btree.Segment]
ble_nil [definition, in Embed.Theory.Btree.Segment]
ble_cons [lemma, in Embed.Theory.Btree.Segment]
ble_id [definition, in Embed.Theory.Btree.Segment]
bnil [constructor, in Embed.Theory.Btree]
bnil_eq [definition, in Embed.Theory.Btree]
bool_Positive [instance, in Embed.Theory.Type.Positive]
btree [inductive, in Embed.Theory.Btree]
Btree [library]
BtreeDepth [section, in Embed.Theory.Btree.Depth]
BtreeEquationsClasses [section, in Embed.Theory.Btree.Id]
BtreeSubtermDepth [section, in Embed.Theory.Btree.Depth]
btree_Functor [instance, in Embed.Theory.Btree.Functor]
btree_unit_Lattice [instance, in Embed.Theory.Btree.Lattice]
btree_is_bforest [definition, in Embed.Theory.Bforest.Is]
btree_monad [instance, in Embed.Theory.Btree.Monad]
btree_subterm_depth [lemma, in Embed.Theory.Btree.Depth]
btree_direct_subterm_depth [lemma, in Embed.Theory.Btree.Depth]
btree_bforest [definition, in Embed.Theory.Bforest]
btree_subterm_bcons [lemma, in Embed.Theory.Btree]
btree_direct_subterm_bcons [lemma, in Embed.Theory.Btree]
C
Canonical [library]canonical_refined_Idempotent [instance, in Embed.Theory.Functor.Refined]
canonical_btree [definition, in Embed.Theory.Btree.Canonical]
cast [definition, in Embed.Theory.Utils]
cast_run_embed_refined [projection, in Embed.Theory.Functor.Refined]
combine_app [definition, in Embed.Theory.Utils]
combine_nil_r [lemma, in Embed.Theory.Utils]
Commutative [record, in Embed.Theory.Lattice]
Commutative [inductive, in Embed.Theory.Lattice]
commutativity [projection, in Embed.Theory.Lattice]
commutativity [constructor, in Embed.Theory.Lattice]
compose_is_btree_section_helper [definition, in Embed.Theory.Btree.Section]
compose_iso_refined [definition, in Embed.Theory.Functor.Refined.Iso]
cons_refined_canonical_btree [definition, in Embed.Theory.Btree.Canonical.List]
cons_refined_canonical_btree_pf [lemma, in Embed.Theory.Btree.Canonical.List]
cons_list_of_length [definition, in Embed.Theory.Btree.Canonical.List]
D
decompose_btree_is_forest_snd [definition, in Embed.Theory.Bforest.Is]decompose_btree_is_forest_fst [definition, in Embed.Theory.Bforest.Is]
decompose_btree_snd [definition, in Embed.Theory.Bforest]
decompose_btree_fst [definition, in Embed.Theory.Bforest]
DecSubterm [record, in Embed.Theory.Btree]
dec_eq_list [definition, in Embed.Theory.Datatypes.List]
dec_id_btree [definition, in Embed.Theory.Btree.Id]
dec_subterm_btree_subterm [instance, in Embed.Theory.Btree]
dec_btree_subterm [definition, in Embed.Theory.Btree]
dec_subterm_btree_direct_subterm [instance, in Embed.Theory.Btree]
dec_subterm [projection, in Embed.Theory.Btree]
dec_btree_direct_subterm [definition, in Embed.Theory.Btree]
dec_eq_btree [definition, in Embed.Theory.Btree]
Def [library]
DepGraph [library]
depth [definition, in Embed.Theory.Btree.Depth]
Depth [library]
dep_hd [definition, in Embed.Theory.Utils]
distribute_eq_cons [definition, in Embed.Theory.Datatypes.List]
distribute_id_bcons [definition, in Embed.Theory.Btree.Id]
distribute_id_bnil [definition, in Embed.Theory.Btree.Id]
distribute_ex_and_eq [lemma, in Embed.Theory.Btree]
distribute_or_and [lemma, in Embed.Theory.Btree]
distribute_eq_bcons [definition, in Embed.Theory.Btree]
distribute_eq_bnil [definition, in Embed.Theory.Btree]
Distributive [record, in Embed.Theory.Lattice]
Distributive [inductive, in Embed.Theory.Lattice]
distributivity [projection, in Embed.Theory.Lattice]
distributivity [constructor, in Embed.Theory.Lattice]
E
Embed [definition, in Embed.Theory.Embed.Tiny]EmbedC [instance, in Embed.Theory.Embed.Tiny]
EmbedRefined [section, in Embed.Theory.Functor.Refined]
EmbedRefinedCat [record, in Embed.Theory.Functor.Refined]
embed_refined_unique [projection, in Embed.Theory.Functor.Refined]
embed_refined [projection, in Embed.Theory.Functor.Refined]
embed_iso_refined [projection, in Embed.Theory.Functor.Refined]
Enumerate [library]
enumerate_refined_canonical_btree_bool_length_eq [definition, in Embed.Theory.Btree.Canonical.Refined.Enumerate]
enumerate_refined_canonical_btree_bool_length [definition, in Embed.Theory.Btree.Canonical.Refined.Enumerate]
enumerate_refined_canonical_btree_bool_nodup [definition, in Embed.Theory.Btree.Canonical.Refined.Enumerate]
enumerate_refined_canonical_btree_bool_helper_Injectives [lemma, in Embed.Theory.Btree.Canonical.Refined.Enumerate]
enumerate_refined_canonical_btree_bool_all [definition, in Embed.Theory.Btree.Canonical.Refined.Enumerate]
enumerate_refined_canonical_btree_bool [definition, in Embed.Theory.Btree.Canonical.Refined.Enumerate]
enumerate_refined_canonical_btree_bool_helper_NoDup [lemma, in Embed.Theory.Btree.Canonical.Refined.Enumerate]
enumerate_refined_canonical_btree_bool_helper [definition, in Embed.Theory.Btree.Canonical.Refined.Enumerate]
eqdec_btree [instance, in Embed.Theory.Btree.Id]
equiv_iso_refined_equiv [instance, in Embed.Theory.Functor.Refined.Iso]
equiv_iso_refined [instance, in Embed.Theory.Functor.Refined.Iso]
eq_zip_btrees [definition, in Embed.Theory.Bforest.Zip]
eq_and [lemma, in Embed.Theory.Utils]
eq_dep_hd [lemma, in Embed.Theory.Utils]
eq_refined [lemma, in Embed.Theory.Functor.Refined.Def]
eq_wrapped_section [lemma, in Embed.Theory.Functor.Refined]
eq_section [lemma, in Embed.Theory.Functor.Refined]
eq_num_leaves_iso_refined_btree [lemma, in Embed.Theory.Btree.Refined.Leaves]
eq_num_leaves_list_num_leaves [lemma, in Embed.Theory.Btree.Leaves]
eq_num_leaves [lemma, in Embed.Theory.Btree.Leaves]
eq_is_bforest_btree [lemma, in Embed.Theory.Bforest.Is]
eq_bforest [lemma, in Embed.Theory.Bforest]
eq_ble [lemma, in Embed.Theory.Btree.Segment]
eq_zip_btree [definition, in Embed.Theory.Btree.Zip]
ex_False [lemma, in Embed.Theory.Btree]
F
False_Affine [instance, in Embed.Theory.Type.Affine]firstn_seq [definition, in Embed.Theory.Datatypes.List]
firstn_map [definition, in Embed.Theory.Datatypes.List]
firstn_zip_combine [definition, in Embed.Theory.Datatypes.List.Zip]
firstn_zip_combine_err [definition, in Embed.Theory.Datatypes.List.Zip]
fmap_btree [definition, in Embed.Theory.Btree.Functor]
fmap_refined [definition, in Embed.Theory.Functor.Refined.Def]
fobj_run_embed_refined [projection, in Embed.Theory.Functor.Refined]
from_wrapped_section [definition, in Embed.Theory.Functor.Refined]
from_to_refined [lemma, in Embed.Theory.Functor.Refined.ToFrom]
from_refined [definition, in Embed.Theory.Functor.Refined.ToFrom]
fst_section [definition, in Embed.Theory.Functor.Refined]
Full_to_AllIn [lemma, in Embed.Theory.Datatypes.List]
Functor [library]
FunctorCat [instance, in Embed.Theory.Functor.Section]
FunctorDecomposeCats [section, in Embed.Theory.Functor.Section]
FunctorRefined [section, in Embed.Theory.Functor.Refined.Def]
FunctorRefinedDef [section, in Embed.Theory.Functor.Refined.Def]
FunctorVoid [section, in Embed.Theory.Functor.Void]
FunctorVoidCoq [section, in Embed.Theory.Functor.Void]
funext [projection, in Embed.Theory.Embed.Tiny]
Funext [record, in Embed.Theory.Embed.Tiny]
I
Id [library]idempotency [projection, in Embed.Theory.Lattice]
idempotency [constructor, in Embed.Theory.Lattice]
Idempotent [record, in Embed.Theory.Lattice]
Idempotent [inductive, in Embed.Theory.Lattice]
id_is_bforest [definition, in Embed.Theory.Bforest.Is]
id_bforest [definition, in Embed.Theory.Bforest]
id_iso_refined [definition, in Embed.Theory.Functor.Refined.Iso]
ImageCat [instance, in Embed.Theory.Functor.Section]
Injectives [definition, in Embed.Theory.Datatypes.List]
Injectives_flat_map_NoDup [definition, in Embed.Theory.Datatypes.List]
in_in_remove [lemma, in Embed.Theory.Datatypes.List]
Is [library]
Iso [library]
Iso [library]
Iso [library]
IsoRefined [section, in Embed.Theory.Functor.Refined.Iso]
iso_refined_void_ret_join [lemma, in Embed.Theory.Functor.Refined]
iso_refined_void_ret [projection, in Embed.Theory.Functor.Refined]
Iso_refined_void_ret [record, in Embed.Theory.Functor.Refined]
iso_refined_void_join [projection, in Embed.Theory.Functor.Refined]
Iso_refined_void_join [record, in Embed.Theory.Functor.Refined]
iso_refined_void_join [constructor, in Embed.Theory.Functor.Refined]
Iso_refined_void_join [inductive, in Embed.Theory.Functor.Refined]
iso_refined_canonical_refined [lemma, in Embed.Theory.Functor.Refined]
iso_prod_id_l_from [projection, in Embed.Theory.Datatypes.Prod]
iso_prod_id_l_to [projection, in Embed.Theory.Datatypes.Prod]
Iso_prod_id_l [record, in Embed.Theory.Datatypes.Prod]
iso_refined_num_leaves [lemma, in Embed.Theory.Btree.Refined.Leaves]
iso_refined_btree_eq_num_leaves [lemma, in Embed.Theory.Btree.Refined.Leaves]
iso_refined_canonical_btree [definition, in Embed.Theory.Btree.Canonical.Refined.Iso]
iso_refined_canonical_btree_plus [definition, in Embed.Theory.Btree.Canonical.Refined.Iso]
iso_is_bforest_btree [lemma, in Embed.Theory.Bforest.Is]
iso_refined_canonical_btree_eq [lemma, in Embed.Theory.Btree.Canonical.Refined]
iso_refined_canonical_btree_le [lemma, in Embed.Theory.Btree.Canonical.Refined]
iso_refined_btree_void_join [lemma, in Embed.Theory.Btree.Refined]
iso_refined_btree_void_ret_join [lemma, in Embed.Theory.Btree.Refined]
iso_refined_btree_void_ret [lemma, in Embed.Theory.Btree.Refined]
iso_refined_equiv [definition, in Embed.Theory.Functor.Refined.Iso]
iso_refined [definition, in Embed.Theory.Functor.Refined.Iso]
is_btree_section_upper_refined [definition, in Embed.Theory.Btree.Section]
is_btree_section_lower_refined [definition, in Embed.Theory.Btree.Section]
is_btree_section_iso_refined_void_join [lemma, in Embed.Theory.Btree.Section]
is_btree_section_iff_is_bforest [lemma, in Embed.Theory.Btree.Section]
is_btree_section_Affine [instance, in Embed.Theory.Btree.Section]
is_btree_section [definition, in Embed.Theory.Btree.Section]
is_bforest_btree_hd [lemma, in Embed.Theory.Bforest.Is]
is_bforest_btree_dep_hd [lemma, in Embed.Theory.Bforest.Is]
is_bforest_btree [definition, in Embed.Theory.Bforest.Is]
is_bforest_Affine [instance, in Embed.Theory.Bforest.Is]
is_bforest [definition, in Embed.Theory.Bforest.Is]
is_btree_subterm_ex3 [definition, in Embed.Theory.Btree]
is_btree_subterm_ex2 [definition, in Embed.Theory.Btree]
is_btree_subterm_ex1 [definition, in Embed.Theory.Btree]
is_sing [definition, in Embed.Theory.Type.Sing]
J
Join [library]join_zip_btrees_id_r [definition, in Embed.Theory.Bforest.Zip]
join_zip_btrees_id_l [definition, in Embed.Theory.Bforest.Zip]
join_zip_btree_id_l [definition, in Embed.Theory.Bforest.Zip]
join_zip_btrees_id_l_helper [lemma, in Embed.Theory.Bforest.Zip]
join_zip_btrees [definition, in Embed.Theory.Bforest.Zip]
join_btree [definition, in Embed.Theory.Btree.Monad]
L
Lattice [record, in Embed.Theory.Lattice]Lattice [library]
Lattice [library]
leaves [definition, in Embed.Theory.Btree.Leaves]
Leaves [library]
Leaves [library]
leaves_fmap [definition, in Embed.Theory.Btree.Leaves]
leaves_zip_btree [definition, in Embed.Theory.Btree.Zip]
length_join_zip_btrees [lemma, in Embed.Theory.Bforest.Zip]
length_zip_btrees [definition, in Embed.Theory.Bforest.Zip]
length_cons_eq [definition, in Embed.Theory.Utils]
length_flat_map_enumerate_refined_canonical_btree_bool_helper [definition, in Embed.Theory.Btree.Canonical.Refined.Enumerate]
length_remove_in [definition, in Embed.Theory.Datatypes.List]
let_fst_snd [lemma, in Embed.Theory.Datatypes.Prod]
lift_id_bcons [definition, in Embed.Theory.Btree.Id]
lift_id_bnil [definition, in Embed.Theory.Btree.Id]
lift_eq_bcons [definition, in Embed.Theory.Btree]
lift_eq_bnil [definition, in Embed.Theory.Btree]
List [library]
List [library]
ListDepHd [section, in Embed.Theory.Utils]
list_num_leaves_join_zip_btrees [definition, in Embed.Theory.Bforest.Zip]
list_num_leaves_zip_btrees [definition, in Embed.Theory.Bforest.Zip]
list_eq_cons [abbreviation, in Embed.Theory.Bforest.Zip]
list_map_snd_combine [definition, in Embed.Theory.Utils]
list_map_cons [lemma, in Embed.Theory.Utils]
list_cons_eq [definition, in Embed.Theory.Utils]
list_app_eq [definition, in Embed.Theory.Utils]
list_of_length [definition, in Embed.Theory.Btree.Canonical.List]
list_num_leaves_skipn [definition, in Embed.Theory.Btree.Leaves]
list_num_leaves_firstn [definition, in Embed.Theory.Btree.Leaves]
list_num_leaves_app [lemma, in Embed.Theory.Btree.Leaves]
list_num_leaves_total [definition, in Embed.Theory.Btree.Leaves]
list_num_leaves_map_fmap [lemma, in Embed.Theory.Btree.Leaves]
list_num_leaves_cons_positive [lemma, in Embed.Theory.Btree.Leaves]
list_num_leaves [definition, in Embed.Theory.Btree.Leaves]
list_map_const_seq [definition, in Embed.Theory.Datatypes.List]
ljoin [projection, in Embed.Theory.Lattice]
ljoin_idempotent [projection, in Embed.Theory.Lattice]
ljoin_absorptive [projection, in Embed.Theory.Lattice]
ljoin_associative [projection, in Embed.Theory.Lattice]
ljoin_commutative [projection, in Embed.Theory.Lattice]
lmeet [projection, in Embed.Theory.Lattice]
lmeet_idempotent [projection, in Embed.Theory.Lattice]
lmeet_absorptive [projection, in Embed.Theory.Lattice]
lmeet_associative [projection, in Embed.Theory.Lattice]
lmeet_commutative [projection, in Embed.Theory.Lattice]
lt_Transitive_f [instance, in Embed.Theory.Btree.Depth]
lt_Transitive [instance, in Embed.Theory.Btree.Depth]
M
magma [definition, in Embed.Theory.Lattice]magma_unit_Lattice [instance, in Embed.Theory.Lattice]
magma_unit_Distributive [instance, in Embed.Theory.Lattice]
magma_unit_Absorptive [instance, in Embed.Theory.Lattice]
magma_unit_Associative [instance, in Embed.Theory.Lattice]
magma_unit_Commutative [instance, in Embed.Theory.Lattice]
magma_unit_Idempotent [instance, in Embed.Theory.Lattice]
MapEmbed [definition, in Embed.Theory.Embed.Tiny]
MapEmbedC [instance, in Embed.Theory.Embed.Tiny]
MapEmbedC_Terminal [instance, in Embed.Theory.Embed.Tiny]
map_is_bforest [definition, in Embed.Theory.Bforest.Is]
max_spec [definition, in Embed.Theory.Btree.Depth]
Monad [library]
MonadVoidCoq [section, in Embed.Theory.Functor.Void]
N
nat_min_plus [lemma, in Embed.Theory.Utils]nat_plus_eq [definition, in Embed.Theory.Utils]
nodup_pigeonhole [definition, in Embed.Theory.Datatypes.List]
nodup_allin_cons_remove [lemma, in Embed.Theory.Datatypes.List]
nodup_app_disjoint [definition, in Embed.Theory.Datatypes.List]
not_iso_refined_bcons_bnil [lemma, in Embed.Theory.Btree.Refined.Leaves]
not_bcons_id_bnil [lemma, in Embed.Theory.Btree.Id]
not_bnil_id_bcons [lemma, in Embed.Theory.Btree.Id]
not_btree_direct_subterm_bcons [lemma, in Embed.Theory.Btree]
not_btree_subterm_bnil [lemma, in Embed.Theory.Btree]
not_btree_direct_subterm_bnil [lemma, in Embed.Theory.Btree]
NP [definition, in Embed.Theory.Embed.Tiny]
NP_Functor [definition, in Embed.Theory.Embed.Tiny]
NS [definition, in Embed.Theory.Embed.Tiny]
NS_Functor [definition, in Embed.Theory.Embed.Tiny]
num_leaves_canonical_btree [definition, in Embed.Theory.Btree.Canonical]
num_leaves_join [definition, in Embed.Theory.Btree.Leaves]
num_leaves_skipn [definition, in Embed.Theory.Btree.Leaves]
num_leaves_firstn [definition, in Embed.Theory.Btree.Leaves]
num_leaves_bcons_length_l [lemma, in Embed.Theory.Btree.Leaves]
num_leaves_fmap [lemma, in Embed.Theory.Btree.Leaves]
num_leaves_positive [lemma, in Embed.Theory.Btree.Leaves]
num_leaves [definition, in Embed.Theory.Btree.Leaves]
num_leaves_le_pow2_depth [definition, in Embed.Theory.Btree.Depth]
num_leaves_zip_btree [definition, in Embed.Theory.Btree.Zip]
O
one_1 [definition, in Embed.Theory.Functor.Void]or_and_Absorptive [instance, in Embed.Theory.Btree.Lattice]
or_and_absorptive [definition, in Embed.Theory.Btree.Lattice]
or_btree_Associative [instance, in Embed.Theory.Btree.Lattice]
or_btree_associative [definition, in Embed.Theory.Btree.Lattice]
or_btree_Commutative [instance, in Embed.Theory.Btree.Lattice]
or_btree_Idempotent [instance, in Embed.Theory.Btree.Lattice]
or_btree [definition, in Embed.Theory.Btree.Lattice]
or_False_id_r [lemma, in Embed.Theory.Btree]
P
pair_iso [instance, in Embed.Theory.Datatypes.Prod]pair_iso_from [definition, in Embed.Theory.Datatypes.Prod]
pair_iso_to [definition, in Embed.Theory.Datatypes.Prod]
pair_eq [definition, in Embed.Theory.Datatypes.Prod]
piso_refined_btree [definition, in Embed.Theory.Btree.Refined.Join]
piso_refined_btree_bcons [instance, in Embed.Theory.Btree.Refined.Join]
piso_refined_btree_bcons_from [definition, in Embed.Theory.Btree.Refined.Join]
piso_refined_btree_bcons_to [definition, in Embed.Theory.Btree.Refined.Join]
piso_refined_btree_bnil [instance, in Embed.Theory.Btree.Refined.Join]
piso_refined_btree_bnil_from [definition, in Embed.Theory.Btree.Refined.Join]
piso_refined_btree_bnil_to [definition, in Embed.Theory.Btree.Refined.Join]
positive [projection, in Embed.Theory.Type.Positive]
Positive [record, in Embed.Theory.Type.Positive]
Positive [library]
Prod [library]
R
refined [definition, in Embed.Theory.Functor.Refined.Def]Refined [library]
Refined [library]
Refined [library]
RefinedCat [instance, in Embed.Theory.Functor.Refined.Iso]
refined_Functor [instance, in Embed.Theory.Functor.Refined.Def]
refined_EqDec [lemma, in Embed.Theory.Functor.Refined.Def]
refined_canonical_btree_iso_list [instance, in Embed.Theory.Btree.Canonical.List]
refined_canonical_btree_iso_list_from_to [definition, in Embed.Theory.Btree.Canonical.List]
refined_canonical_btree_iso_list_to_from [definition, in Embed.Theory.Btree.Canonical.List]
refined_canonical_btree_iso_list_from_cons [lemma, in Embed.Theory.Btree.Canonical.List]
refined_canonical_btree_iso_list_from [definition, in Embed.Theory.Btree.Canonical.List]
refined_canonical_btree_iso_list_to_cons [lemma, in Embed.Theory.Btree.Canonical.List]
refined_canonical_btree_iso_list_to [definition, in Embed.Theory.Btree.Canonical.List]
refined_bcons [instance, in Embed.Theory.Btree.Refined.Iso]
refined_bcons_from [definition, in Embed.Theory.Btree.Refined.Iso]
refined_bcons_to [definition, in Embed.Theory.Btree.Refined.Iso]
refined_bnil [instance, in Embed.Theory.Btree.Refined.Iso]
refined_bnil_from [definition, in Embed.Theory.Btree.Refined.Iso]
refined_bnil_to [definition, in Embed.Theory.Btree.Refined.Iso]
refine_nat_pred_positive [lemma, in Embed.Theory.Utils]
refine_iso_prod_id_l [instance, in Embed.Theory.Datatypes.Prod]
refine_iso_prod_id_l_from [definition, in Embed.Theory.Datatypes.Prod]
refine_iso_prod_id_l_to [definition, in Embed.Theory.Datatypes.Prod]
ret_btree [definition, in Embed.Theory.Btree.Monad]
run_embed_refined [projection, in Embed.Theory.Functor.Refined]
run_bforest_trans [lemma, in Embed.Theory.Bforest]
run_bforest_id [lemma, in Embed.Theory.Bforest]
run_bforest [definition, in Embed.Theory.Bforest]
S
section [definition, in Embed.Theory.Functor.Refined]Section [library]
Section [library]
Segment [library]
Sing [record, in Embed.Theory.Type.Sing]
Sing [library]
sing_affine [projection, in Embed.Theory.Type.Sing]
sing_positive [projection, in Embed.Theory.Type.Sing]
skipn_app_length [lemma, in Embed.Theory.Datatypes.List]
skipn_skipn_positive_cons [definition, in Embed.Theory.Datatypes.List]
skipn_skipn [definition, in Embed.Theory.Datatypes.List]
skipn_seq [definition, in Embed.Theory.Datatypes.List]
skipn_map [definition, in Embed.Theory.Datatypes.List]
skipn_zip_combine [definition, in Embed.Theory.Datatypes.List.Zip]
skipn_zip_combine_err [definition, in Embed.Theory.Datatypes.List.Zip]
snd_section [definition, in Embed.Theory.Functor.Refined]
split_clos_trans_r [lemma, in Embed.Theory.Btree]
split_clos_trans_l [lemma, in Embed.Theory.Btree]
T
Tiny [library]ToFrom [library]
ToFromRefined [section, in Embed.Theory.Functor.Refined.ToFrom]
total [definition, in Embed.Theory.Datatypes.List.Total]
total [definition, in Embed.Theory.Btree.Leaves]
Total [library]
total_app [definition, in Embed.Theory.Datatypes.List.Total]
total_app [definition, in Embed.Theory.Btree.Leaves]
to_Iso_prod_id_l_bool_from [definition, in Embed.Theory.Datatypes.Prod]
to_Iso_prod_id_l_bool_to [definition, in Embed.Theory.Datatypes.Prod]
to_iso_Injective [lemma, in Embed.Theory.Btree.Canonical.Refined]
to_from_refined [lemma, in Embed.Theory.Functor.Refined.ToFrom]
to_refined [definition, in Embed.Theory.Functor.Refined.ToFrom]
trans_clos_incl [lemma, in Embed.Theory.Btree.Depth]
trans_bforest [definition, in Embed.Theory.Bforest]
trans_ble [definition, in Embed.Theory.Btree.Segment]
U
uip_btree [instance, in Embed.Theory.Btree.Id]uncons_list_of_length [definition, in Embed.Theory.Btree.Canonical.List]
unfold_snd_section [lemma, in Embed.Theory.Functor.Refined]
unfold_canonical_refined_eq [lemma, in Embed.Theory.Functor.Refined]
unfold_is_btree_section [lemma, in Embed.Theory.Btree.Section]
unit_Affine [instance, in Embed.Theory.Type.Affine]
unit_Positive [instance, in Embed.Theory.Type.Positive]
unit_Sing [instance, in Embed.Theory.Type.Sing]
Utils [library]
U1 [definition, in Embed.Theory.Embed.Tiny]
V
void [definition, in Embed.Theory.Btree.Functor]void [definition, in Embed.Theory.Functor.Void]
Void [library]
void_join [lemma, in Embed.Theory.Functor.Void]
void_fmap_1 [lemma, in Embed.Theory.Functor.Void]
void_1 [lemma, in Embed.Theory.Functor.Void]
void_fmap [lemma, in Embed.Theory.Functor.Void]
void_from_refined [lemma, in Embed.Theory.Functor.Refined.ToFrom]
W
wrapped_section [definition, in Embed.Theory.Functor.Refined]Z
Zip [library]Zip [library]
Zip [library]
zip_combine_err_zip_btree_err [definition, in Embed.Theory.Bforest.Zip]
zip_combine_zip_btree [definition, in Embed.Theory.Bforest.Zip]
zip_btrees_err_correct [definition, in Embed.Theory.Bforest.Zip]
zip_btrees_err [definition, in Embed.Theory.Bforest.Zip]
zip_btrees [definition, in Embed.Theory.Bforest.Zip]
zip_is_bforest [definition, in Embed.Theory.Bforest.Is]
zip_is_bforest_list_num_leaves [definition, in Embed.Theory.Bforest.Is]
zip_is_bforest_length [definition, in Embed.Theory.Bforest.Is]
zip_btree_err_correct [definition, in Embed.Theory.Btree.Zip]
zip_btree_err [definition, in Embed.Theory.Btree.Zip]
zip_btree [definition, in Embed.Theory.Btree.Zip]
zip_combine_err_correct [definition, in Embed.Theory.Datatypes.List.Zip]
zip_combine_err [definition, in Embed.Theory.Datatypes.List.Zip]
zip_combine [definition, in Embed.Theory.Datatypes.List.Zip]
zip_combine_helper_skipn [lemma, in Embed.Theory.Datatypes.List.Zip]
zip_combine_helper_firstn [lemma, in Embed.Theory.Datatypes.List.Zip]
other
_ ⥤ _ (category_scope) [notation, in Embed.Theory.Embed.Tiny]void_fmap[ _ ] (category_scope) [notation, in Embed.Theory.Functor.Void]
void[ _ ] (category_scope) [notation, in Embed.Theory.Functor.Void]
bnil! [notation, in Embed.Theory.Btree.Lattice]
btree! [notation, in Embed.Theory.Btree.Lattice]
btree2! [notation, in Embed.Theory.Btree.Lattice]
Notation Index
other
_ ⥤ _ (category_scope) [in Embed.Theory.Embed.Tiny]void_fmap[ _ ] (category_scope) [in Embed.Theory.Functor.Void]
void[ _ ] (category_scope) [in Embed.Theory.Functor.Void]
bnil! [in Embed.Theory.Btree.Lattice]
btree! [in Embed.Theory.Btree.Lattice]
btree2! [in Embed.Theory.Btree.Lattice]
Library Index
A
AffineB
BforestBtree
C
CanonicalD
DefDepGraph
Depth
E
EnumerateF
FunctorI
IdIs
Iso
Iso
Iso
J
JoinL
LatticeLattice
Leaves
Leaves
List
List
M
MonadP
PositiveProd
R
RefinedRefined
Refined
S
SectionSection
Segment
Sing
T
TinyToFrom
Total
U
UtilsV
VoidZ
ZipZip
Zip
Lemma Index
A
assoc_join_zip_btrees [in Embed.Theory.Bforest.Zip]B
ble_cons [in Embed.Theory.Btree.Segment]btree_subterm_depth [in Embed.Theory.Btree.Depth]
btree_direct_subterm_depth [in Embed.Theory.Btree.Depth]
btree_subterm_bcons [in Embed.Theory.Btree]
btree_direct_subterm_bcons [in Embed.Theory.Btree]
C
combine_nil_r [in Embed.Theory.Utils]cons_refined_canonical_btree_pf [in Embed.Theory.Btree.Canonical.List]
D
distribute_ex_and_eq [in Embed.Theory.Btree]distribute_or_and [in Embed.Theory.Btree]
E
enumerate_refined_canonical_btree_bool_helper_Injectives [in Embed.Theory.Btree.Canonical.Refined.Enumerate]enumerate_refined_canonical_btree_bool_helper_NoDup [in Embed.Theory.Btree.Canonical.Refined.Enumerate]
eq_and [in Embed.Theory.Utils]
eq_dep_hd [in Embed.Theory.Utils]
eq_refined [in Embed.Theory.Functor.Refined.Def]
eq_wrapped_section [in Embed.Theory.Functor.Refined]
eq_section [in Embed.Theory.Functor.Refined]
eq_num_leaves_iso_refined_btree [in Embed.Theory.Btree.Refined.Leaves]
eq_num_leaves_list_num_leaves [in Embed.Theory.Btree.Leaves]
eq_num_leaves [in Embed.Theory.Btree.Leaves]
eq_is_bforest_btree [in Embed.Theory.Bforest.Is]
eq_bforest [in Embed.Theory.Bforest]
eq_ble [in Embed.Theory.Btree.Segment]
ex_False [in Embed.Theory.Btree]
F
from_to_refined [in Embed.Theory.Functor.Refined.ToFrom]Full_to_AllIn [in Embed.Theory.Datatypes.List]
I
in_in_remove [in Embed.Theory.Datatypes.List]iso_refined_void_ret_join [in Embed.Theory.Functor.Refined]
iso_refined_canonical_refined [in Embed.Theory.Functor.Refined]
iso_refined_num_leaves [in Embed.Theory.Btree.Refined.Leaves]
iso_refined_btree_eq_num_leaves [in Embed.Theory.Btree.Refined.Leaves]
iso_is_bforest_btree [in Embed.Theory.Bforest.Is]
iso_refined_canonical_btree_eq [in Embed.Theory.Btree.Canonical.Refined]
iso_refined_canonical_btree_le [in Embed.Theory.Btree.Canonical.Refined]
iso_refined_btree_void_join [in Embed.Theory.Btree.Refined]
iso_refined_btree_void_ret_join [in Embed.Theory.Btree.Refined]
iso_refined_btree_void_ret [in Embed.Theory.Btree.Refined]
is_btree_section_iso_refined_void_join [in Embed.Theory.Btree.Section]
is_btree_section_iff_is_bforest [in Embed.Theory.Btree.Section]
is_bforest_btree_hd [in Embed.Theory.Bforest.Is]
is_bforest_btree_dep_hd [in Embed.Theory.Bforest.Is]
J
join_zip_btrees_id_l_helper [in Embed.Theory.Bforest.Zip]L
length_join_zip_btrees [in Embed.Theory.Bforest.Zip]let_fst_snd [in Embed.Theory.Datatypes.Prod]
list_map_cons [in Embed.Theory.Utils]
list_num_leaves_app [in Embed.Theory.Btree.Leaves]
list_num_leaves_map_fmap [in Embed.Theory.Btree.Leaves]
list_num_leaves_cons_positive [in Embed.Theory.Btree.Leaves]
N
nat_min_plus [in Embed.Theory.Utils]nodup_allin_cons_remove [in Embed.Theory.Datatypes.List]
not_iso_refined_bcons_bnil [in Embed.Theory.Btree.Refined.Leaves]
not_bcons_id_bnil [in Embed.Theory.Btree.Id]
not_bnil_id_bcons [in Embed.Theory.Btree.Id]
not_btree_direct_subterm_bcons [in Embed.Theory.Btree]
not_btree_subterm_bnil [in Embed.Theory.Btree]
not_btree_direct_subterm_bnil [in Embed.Theory.Btree]
num_leaves_bcons_length_l [in Embed.Theory.Btree.Leaves]
num_leaves_fmap [in Embed.Theory.Btree.Leaves]
num_leaves_positive [in Embed.Theory.Btree.Leaves]
O
or_False_id_r [in Embed.Theory.Btree]R
refined_EqDec [in Embed.Theory.Functor.Refined.Def]refined_canonical_btree_iso_list_from_cons [in Embed.Theory.Btree.Canonical.List]
refined_canonical_btree_iso_list_to_cons [in Embed.Theory.Btree.Canonical.List]
refine_nat_pred_positive [in Embed.Theory.Utils]
run_bforest_trans [in Embed.Theory.Bforest]
run_bforest_id [in Embed.Theory.Bforest]
S
skipn_app_length [in Embed.Theory.Datatypes.List]split_clos_trans_r [in Embed.Theory.Btree]
split_clos_trans_l [in Embed.Theory.Btree]
T
to_iso_Injective [in Embed.Theory.Btree.Canonical.Refined]to_from_refined [in Embed.Theory.Functor.Refined.ToFrom]
trans_clos_incl [in Embed.Theory.Btree.Depth]
U
unfold_snd_section [in Embed.Theory.Functor.Refined]unfold_canonical_refined_eq [in Embed.Theory.Functor.Refined]
unfold_is_btree_section [in Embed.Theory.Btree.Section]
V
void_join [in Embed.Theory.Functor.Void]void_fmap_1 [in Embed.Theory.Functor.Void]
void_1 [in Embed.Theory.Functor.Void]
void_fmap [in Embed.Theory.Functor.Void]
void_from_refined [in Embed.Theory.Functor.Refined.ToFrom]
Z
zip_combine_helper_skipn [in Embed.Theory.Datatypes.List.Zip]zip_combine_helper_firstn [in Embed.Theory.Datatypes.List.Zip]
Constructor Index
A
absorptivity [in Embed.Theory.Lattice]affine [in Embed.Theory.Type.Affine]
associativity [in Embed.Theory.Lattice]
B
bcons [in Embed.Theory.Btree]bnil [in Embed.Theory.Btree]
C
commutativity [in Embed.Theory.Lattice]D
distributivity [in Embed.Theory.Lattice]I
idempotency [in Embed.Theory.Lattice]iso_refined_void_join [in Embed.Theory.Functor.Refined]
Projection Index
A
absorptivity [in Embed.Theory.Lattice]affine [in Embed.Theory.Type.Affine]
associativity [in Embed.Theory.Lattice]
C
cast_run_embed_refined [in Embed.Theory.Functor.Refined]commutativity [in Embed.Theory.Lattice]
D
dec_subterm [in Embed.Theory.Btree]distributivity [in Embed.Theory.Lattice]
E
embed_refined_unique [in Embed.Theory.Functor.Refined]embed_refined [in Embed.Theory.Functor.Refined]
embed_iso_refined [in Embed.Theory.Functor.Refined]
F
fobj_run_embed_refined [in Embed.Theory.Functor.Refined]funext [in Embed.Theory.Embed.Tiny]
I
idempotency [in Embed.Theory.Lattice]iso_refined_void_ret [in Embed.Theory.Functor.Refined]
iso_refined_void_join [in Embed.Theory.Functor.Refined]
iso_prod_id_l_from [in Embed.Theory.Datatypes.Prod]
iso_prod_id_l_to [in Embed.Theory.Datatypes.Prod]
L
ljoin [in Embed.Theory.Lattice]ljoin_idempotent [in Embed.Theory.Lattice]
ljoin_absorptive [in Embed.Theory.Lattice]
ljoin_associative [in Embed.Theory.Lattice]
ljoin_commutative [in Embed.Theory.Lattice]
lmeet [in Embed.Theory.Lattice]
lmeet_idempotent [in Embed.Theory.Lattice]
lmeet_absorptive [in Embed.Theory.Lattice]
lmeet_associative [in Embed.Theory.Lattice]
lmeet_commutative [in Embed.Theory.Lattice]
P
positive [in Embed.Theory.Type.Positive]R
run_embed_refined [in Embed.Theory.Functor.Refined]S
sing_affine [in Embed.Theory.Type.Sing]sing_positive [in Embed.Theory.Type.Sing]
Inductive Index
A
Absorptive [in Embed.Theory.Lattice]Affine [in Embed.Theory.Type.Affine]
Associative [in Embed.Theory.Lattice]
B
btree [in Embed.Theory.Btree]C
Commutative [in Embed.Theory.Lattice]D
Distributive [in Embed.Theory.Lattice]I
Idempotent [in Embed.Theory.Lattice]Iso_refined_void_join [in Embed.Theory.Functor.Refined]
Instance Index
A
abstract_prod_l [in Embed.Theory.Datatypes.Prod]affine_iff_iso [in Embed.Theory.Type.Affine]
and_or_Distributive [in Embed.Theory.Btree.Lattice]
and_or_Absorptive [in Embed.Theory.Btree.Lattice]
and_btree_Associative [in Embed.Theory.Btree.Lattice]
and_btree_Commutative [in Embed.Theory.Btree.Lattice]
and_btree_Idempotent [in Embed.Theory.Btree.Lattice]
B
BextensionC [in Embed.Theory.Btree.Segment]BforestC [in Embed.Theory.Bforest]
bool_Positive [in Embed.Theory.Type.Positive]
btree_Functor [in Embed.Theory.Btree.Functor]
btree_unit_Lattice [in Embed.Theory.Btree.Lattice]
btree_monad [in Embed.Theory.Btree.Monad]
C
canonical_refined_Idempotent [in Embed.Theory.Functor.Refined]D
dec_subterm_btree_subterm [in Embed.Theory.Btree]dec_subterm_btree_direct_subterm [in Embed.Theory.Btree]
E
EmbedC [in Embed.Theory.Embed.Tiny]eqdec_btree [in Embed.Theory.Btree.Id]
equiv_iso_refined_equiv [in Embed.Theory.Functor.Refined.Iso]
equiv_iso_refined [in Embed.Theory.Functor.Refined.Iso]
F
False_Affine [in Embed.Theory.Type.Affine]FunctorCat [in Embed.Theory.Functor.Section]
I
ImageCat [in Embed.Theory.Functor.Section]is_btree_section_Affine [in Embed.Theory.Btree.Section]
is_bforest_Affine [in Embed.Theory.Bforest.Is]
L
lt_Transitive_f [in Embed.Theory.Btree.Depth]lt_Transitive [in Embed.Theory.Btree.Depth]
M
magma_unit_Lattice [in Embed.Theory.Lattice]magma_unit_Distributive [in Embed.Theory.Lattice]
magma_unit_Absorptive [in Embed.Theory.Lattice]
magma_unit_Associative [in Embed.Theory.Lattice]
magma_unit_Commutative [in Embed.Theory.Lattice]
magma_unit_Idempotent [in Embed.Theory.Lattice]
MapEmbedC [in Embed.Theory.Embed.Tiny]
MapEmbedC_Terminal [in Embed.Theory.Embed.Tiny]
O
or_and_Absorptive [in Embed.Theory.Btree.Lattice]or_btree_Associative [in Embed.Theory.Btree.Lattice]
or_btree_Commutative [in Embed.Theory.Btree.Lattice]
or_btree_Idempotent [in Embed.Theory.Btree.Lattice]
P
pair_iso [in Embed.Theory.Datatypes.Prod]piso_refined_btree_bcons [in Embed.Theory.Btree.Refined.Join]
piso_refined_btree_bnil [in Embed.Theory.Btree.Refined.Join]
R
RefinedCat [in Embed.Theory.Functor.Refined.Iso]refined_Functor [in Embed.Theory.Functor.Refined.Def]
refined_canonical_btree_iso_list [in Embed.Theory.Btree.Canonical.List]
refined_bcons [in Embed.Theory.Btree.Refined.Iso]
refined_bnil [in Embed.Theory.Btree.Refined.Iso]
refine_iso_prod_id_l [in Embed.Theory.Datatypes.Prod]
U
uip_btree [in Embed.Theory.Btree.Id]unit_Affine [in Embed.Theory.Type.Affine]
unit_Positive [in Embed.Theory.Type.Positive]
unit_Sing [in Embed.Theory.Type.Sing]
Section Index
B
BtreeDepth [in Embed.Theory.Btree.Depth]BtreeEquationsClasses [in Embed.Theory.Btree.Id]
BtreeSubtermDepth [in Embed.Theory.Btree.Depth]
E
EmbedRefined [in Embed.Theory.Functor.Refined]F
FunctorDecomposeCats [in Embed.Theory.Functor.Section]FunctorRefined [in Embed.Theory.Functor.Refined.Def]
FunctorRefinedDef [in Embed.Theory.Functor.Refined.Def]
FunctorVoid [in Embed.Theory.Functor.Void]
FunctorVoidCoq [in Embed.Theory.Functor.Void]
I
IsoRefined [in Embed.Theory.Functor.Refined.Iso]L
ListDepHd [in Embed.Theory.Utils]M
MonadVoidCoq [in Embed.Theory.Functor.Void]T
ToFromRefined [in Embed.Theory.Functor.Refined.ToFrom]Abbreviation Index
L
list_eq_cons [in Embed.Theory.Bforest.Zip]Definition Index
A
abstract_prod_l_from [in Embed.Theory.Datatypes.Prod]abstract_prod_l_to [in Embed.Theory.Datatypes.Prod]
AllIn [in Embed.Theory.Datatypes.List]
and_or_distributive [in Embed.Theory.Btree.Lattice]
and_or_absorptive [in Embed.Theory.Btree.Lattice]
and_btree_associative [in Embed.Theory.Btree.Lattice]
and_btree [in Embed.Theory.Btree.Lattice]
assoc_join_zip_btrees_err [in Embed.Theory.Bforest.Zip]
assoc_join_zip_btree_err [in Embed.Theory.Bforest.Zip]
B
bcons_eq [in Embed.Theory.Btree]bforest [in Embed.Theory.Bforest]
bforest_btree [in Embed.Theory.Bforest]
ble [in Embed.Theory.Btree.Segment]
ble_consistent [in Embed.Theory.Btree.Segment]
ble_nil [in Embed.Theory.Btree.Segment]
ble_id [in Embed.Theory.Btree.Segment]
bnil_eq [in Embed.Theory.Btree]
btree_is_bforest [in Embed.Theory.Bforest.Is]
btree_bforest [in Embed.Theory.Bforest]
C
canonical_btree [in Embed.Theory.Btree.Canonical]cast [in Embed.Theory.Utils]
combine_app [in Embed.Theory.Utils]
compose_is_btree_section_helper [in Embed.Theory.Btree.Section]
compose_iso_refined [in Embed.Theory.Functor.Refined.Iso]
cons_refined_canonical_btree [in Embed.Theory.Btree.Canonical.List]
cons_list_of_length [in Embed.Theory.Btree.Canonical.List]
D
decompose_btree_is_forest_snd [in Embed.Theory.Bforest.Is]decompose_btree_is_forest_fst [in Embed.Theory.Bforest.Is]
decompose_btree_snd [in Embed.Theory.Bforest]
decompose_btree_fst [in Embed.Theory.Bforest]
dec_eq_list [in Embed.Theory.Datatypes.List]
dec_id_btree [in Embed.Theory.Btree.Id]
dec_btree_subterm [in Embed.Theory.Btree]
dec_btree_direct_subterm [in Embed.Theory.Btree]
dec_eq_btree [in Embed.Theory.Btree]
depth [in Embed.Theory.Btree.Depth]
dep_hd [in Embed.Theory.Utils]
distribute_eq_cons [in Embed.Theory.Datatypes.List]
distribute_id_bcons [in Embed.Theory.Btree.Id]
distribute_id_bnil [in Embed.Theory.Btree.Id]
distribute_eq_bcons [in Embed.Theory.Btree]
distribute_eq_bnil [in Embed.Theory.Btree]
E
Embed [in Embed.Theory.Embed.Tiny]enumerate_refined_canonical_btree_bool_length_eq [in Embed.Theory.Btree.Canonical.Refined.Enumerate]
enumerate_refined_canonical_btree_bool_length [in Embed.Theory.Btree.Canonical.Refined.Enumerate]
enumerate_refined_canonical_btree_bool_nodup [in Embed.Theory.Btree.Canonical.Refined.Enumerate]
enumerate_refined_canonical_btree_bool_all [in Embed.Theory.Btree.Canonical.Refined.Enumerate]
enumerate_refined_canonical_btree_bool [in Embed.Theory.Btree.Canonical.Refined.Enumerate]
enumerate_refined_canonical_btree_bool_helper [in Embed.Theory.Btree.Canonical.Refined.Enumerate]
eq_zip_btrees [in Embed.Theory.Bforest.Zip]
eq_zip_btree [in Embed.Theory.Btree.Zip]
F
firstn_seq [in Embed.Theory.Datatypes.List]firstn_map [in Embed.Theory.Datatypes.List]
firstn_zip_combine [in Embed.Theory.Datatypes.List.Zip]
firstn_zip_combine_err [in Embed.Theory.Datatypes.List.Zip]
fmap_btree [in Embed.Theory.Btree.Functor]
fmap_refined [in Embed.Theory.Functor.Refined.Def]
from_wrapped_section [in Embed.Theory.Functor.Refined]
from_refined [in Embed.Theory.Functor.Refined.ToFrom]
fst_section [in Embed.Theory.Functor.Refined]
I
id_is_bforest [in Embed.Theory.Bforest.Is]id_bforest [in Embed.Theory.Bforest]
id_iso_refined [in Embed.Theory.Functor.Refined.Iso]
Injectives [in Embed.Theory.Datatypes.List]
Injectives_flat_map_NoDup [in Embed.Theory.Datatypes.List]
iso_refined_canonical_btree [in Embed.Theory.Btree.Canonical.Refined.Iso]
iso_refined_canonical_btree_plus [in Embed.Theory.Btree.Canonical.Refined.Iso]
iso_refined_equiv [in Embed.Theory.Functor.Refined.Iso]
iso_refined [in Embed.Theory.Functor.Refined.Iso]
is_btree_section_upper_refined [in Embed.Theory.Btree.Section]
is_btree_section_lower_refined [in Embed.Theory.Btree.Section]
is_btree_section [in Embed.Theory.Btree.Section]
is_bforest_btree [in Embed.Theory.Bforest.Is]
is_bforest [in Embed.Theory.Bforest.Is]
is_btree_subterm_ex3 [in Embed.Theory.Btree]
is_btree_subterm_ex2 [in Embed.Theory.Btree]
is_btree_subterm_ex1 [in Embed.Theory.Btree]
is_sing [in Embed.Theory.Type.Sing]
J
join_zip_btrees_id_r [in Embed.Theory.Bforest.Zip]join_zip_btrees_id_l [in Embed.Theory.Bforest.Zip]
join_zip_btree_id_l [in Embed.Theory.Bforest.Zip]
join_zip_btrees [in Embed.Theory.Bforest.Zip]
join_btree [in Embed.Theory.Btree.Monad]
L
leaves [in Embed.Theory.Btree.Leaves]leaves_fmap [in Embed.Theory.Btree.Leaves]
leaves_zip_btree [in Embed.Theory.Btree.Zip]
length_zip_btrees [in Embed.Theory.Bforest.Zip]
length_cons_eq [in Embed.Theory.Utils]
length_flat_map_enumerate_refined_canonical_btree_bool_helper [in Embed.Theory.Btree.Canonical.Refined.Enumerate]
length_remove_in [in Embed.Theory.Datatypes.List]
lift_id_bcons [in Embed.Theory.Btree.Id]
lift_id_bnil [in Embed.Theory.Btree.Id]
lift_eq_bcons [in Embed.Theory.Btree]
lift_eq_bnil [in Embed.Theory.Btree]
list_num_leaves_join_zip_btrees [in Embed.Theory.Bforest.Zip]
list_num_leaves_zip_btrees [in Embed.Theory.Bforest.Zip]
list_map_snd_combine [in Embed.Theory.Utils]
list_cons_eq [in Embed.Theory.Utils]
list_app_eq [in Embed.Theory.Utils]
list_of_length [in Embed.Theory.Btree.Canonical.List]
list_num_leaves_skipn [in Embed.Theory.Btree.Leaves]
list_num_leaves_firstn [in Embed.Theory.Btree.Leaves]
list_num_leaves_total [in Embed.Theory.Btree.Leaves]
list_num_leaves [in Embed.Theory.Btree.Leaves]
list_map_const_seq [in Embed.Theory.Datatypes.List]
M
magma [in Embed.Theory.Lattice]MapEmbed [in Embed.Theory.Embed.Tiny]
map_is_bforest [in Embed.Theory.Bforest.Is]
max_spec [in Embed.Theory.Btree.Depth]
N
nat_plus_eq [in Embed.Theory.Utils]nodup_pigeonhole [in Embed.Theory.Datatypes.List]
nodup_app_disjoint [in Embed.Theory.Datatypes.List]
NP [in Embed.Theory.Embed.Tiny]
NP_Functor [in Embed.Theory.Embed.Tiny]
NS [in Embed.Theory.Embed.Tiny]
NS_Functor [in Embed.Theory.Embed.Tiny]
num_leaves_canonical_btree [in Embed.Theory.Btree.Canonical]
num_leaves_join [in Embed.Theory.Btree.Leaves]
num_leaves_skipn [in Embed.Theory.Btree.Leaves]
num_leaves_firstn [in Embed.Theory.Btree.Leaves]
num_leaves [in Embed.Theory.Btree.Leaves]
num_leaves_le_pow2_depth [in Embed.Theory.Btree.Depth]
num_leaves_zip_btree [in Embed.Theory.Btree.Zip]
O
one_1 [in Embed.Theory.Functor.Void]or_and_absorptive [in Embed.Theory.Btree.Lattice]
or_btree_associative [in Embed.Theory.Btree.Lattice]
or_btree [in Embed.Theory.Btree.Lattice]
P
pair_iso_from [in Embed.Theory.Datatypes.Prod]pair_iso_to [in Embed.Theory.Datatypes.Prod]
pair_eq [in Embed.Theory.Datatypes.Prod]
piso_refined_btree [in Embed.Theory.Btree.Refined.Join]
piso_refined_btree_bcons_from [in Embed.Theory.Btree.Refined.Join]
piso_refined_btree_bcons_to [in Embed.Theory.Btree.Refined.Join]
piso_refined_btree_bnil_from [in Embed.Theory.Btree.Refined.Join]
piso_refined_btree_bnil_to [in Embed.Theory.Btree.Refined.Join]
R
refined [in Embed.Theory.Functor.Refined.Def]refined_canonical_btree_iso_list_from_to [in Embed.Theory.Btree.Canonical.List]
refined_canonical_btree_iso_list_to_from [in Embed.Theory.Btree.Canonical.List]
refined_canonical_btree_iso_list_from [in Embed.Theory.Btree.Canonical.List]
refined_canonical_btree_iso_list_to [in Embed.Theory.Btree.Canonical.List]
refined_bcons_from [in Embed.Theory.Btree.Refined.Iso]
refined_bcons_to [in Embed.Theory.Btree.Refined.Iso]
refined_bnil_from [in Embed.Theory.Btree.Refined.Iso]
refined_bnil_to [in Embed.Theory.Btree.Refined.Iso]
refine_iso_prod_id_l_from [in Embed.Theory.Datatypes.Prod]
refine_iso_prod_id_l_to [in Embed.Theory.Datatypes.Prod]
ret_btree [in Embed.Theory.Btree.Monad]
run_bforest [in Embed.Theory.Bforest]
S
section [in Embed.Theory.Functor.Refined]skipn_skipn_positive_cons [in Embed.Theory.Datatypes.List]
skipn_skipn [in Embed.Theory.Datatypes.List]
skipn_seq [in Embed.Theory.Datatypes.List]
skipn_map [in Embed.Theory.Datatypes.List]
skipn_zip_combine [in Embed.Theory.Datatypes.List.Zip]
skipn_zip_combine_err [in Embed.Theory.Datatypes.List.Zip]
snd_section [in Embed.Theory.Functor.Refined]
T
total [in Embed.Theory.Datatypes.List.Total]total [in Embed.Theory.Btree.Leaves]
total_app [in Embed.Theory.Datatypes.List.Total]
total_app [in Embed.Theory.Btree.Leaves]
to_Iso_prod_id_l_bool_from [in Embed.Theory.Datatypes.Prod]
to_Iso_prod_id_l_bool_to [in Embed.Theory.Datatypes.Prod]
to_refined [in Embed.Theory.Functor.Refined.ToFrom]
trans_bforest [in Embed.Theory.Bforest]
trans_ble [in Embed.Theory.Btree.Segment]
U
uncons_list_of_length [in Embed.Theory.Btree.Canonical.List]U1 [in Embed.Theory.Embed.Tiny]
V
void [in Embed.Theory.Btree.Functor]void [in Embed.Theory.Functor.Void]
W
wrapped_section [in Embed.Theory.Functor.Refined]Z
zip_combine_err_zip_btree_err [in Embed.Theory.Bforest.Zip]zip_combine_zip_btree [in Embed.Theory.Bforest.Zip]
zip_btrees_err_correct [in Embed.Theory.Bforest.Zip]
zip_btrees_err [in Embed.Theory.Bforest.Zip]
zip_btrees [in Embed.Theory.Bforest.Zip]
zip_is_bforest [in Embed.Theory.Bforest.Is]
zip_is_bforest_list_num_leaves [in Embed.Theory.Bforest.Is]
zip_is_bforest_length [in Embed.Theory.Bforest.Is]
zip_btree_err_correct [in Embed.Theory.Btree.Zip]
zip_btree_err [in Embed.Theory.Btree.Zip]
zip_btree [in Embed.Theory.Btree.Zip]
zip_combine_err_correct [in Embed.Theory.Datatypes.List.Zip]
zip_combine_err [in Embed.Theory.Datatypes.List.Zip]
zip_combine [in Embed.Theory.Datatypes.List.Zip]
Record Index
A
Absorptive [in Embed.Theory.Lattice]Affine [in Embed.Theory.Type.Affine]
Associative [in Embed.Theory.Lattice]
C
Commutative [in Embed.Theory.Lattice]D
DecSubterm [in Embed.Theory.Btree]Distributive [in Embed.Theory.Lattice]
E
EmbedRefinedCat [in Embed.Theory.Functor.Refined]F
Funext [in Embed.Theory.Embed.Tiny]I
Idempotent [in Embed.Theory.Lattice]Iso_refined_void_ret [in Embed.Theory.Functor.Refined]
Iso_refined_void_join [in Embed.Theory.Functor.Refined]
Iso_prod_id_l [in Embed.Theory.Datatypes.Prod]
L
Lattice [in Embed.Theory.Lattice]P
Positive [in Embed.Theory.Type.Positive]S
Sing [in Embed.Theory.Type.Sing]| Global Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (440 entries) |
| Notation Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (6 entries) |
| Library Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (39 entries) |
| Lemma Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (82 entries) |
| Constructor Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (9 entries) |
| Projection Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (31 entries) |
| Inductive Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (8 entries) |
| Instance Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (52 entries) |
| Section Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (13 entries) |
| Abbreviation Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (1 entry) |
| Definition Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (184 entries) |
| Record Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (15 entries) |
This page has been generated by coqdoc


abstract fun ensureWrappingKey(): Unit
Ensures that the wrapping key is generated if required by the underlying CryptoService implementation. The alias under which the created wrapping key is created would have to be provided in the configuration. The method would be called only during the bootstrapping process.
CryptoServiceException
- for general cryptographic exceptions.


README
What is this repository for?
- TO-DO App
- 1.0
How do I get set up?
- Clone following repository with any of open source git client(Source tree preferred).
- Make sure pod is installed on your Mac (Refer to https://cocoapods.org for installation instruction)
- Use Cocoapods mac app or terminal to install cocoapods.
- Go to repository root folder in terminal & run pod install command.
- After pod installation completion, open workspace file in xcode.
Who do I talk to?
- Send mail on<EMAIL_ADDRESS>for any query.


I am a software test engineer from the UK, though have worked in Germany, New Zealand and Australia. Test automation is my favourite part of being a tester, as it gives me an opportunity to flex my coding skills and pick up new tools.
On a more personal note, I am an avid guitar player having played in the London Video Game Orchestra and recently built my own guitar from scratch!
View ResumeDuring my time in New Zealand and with the tech job opportunities during Covid, I worked for the New Zealand Electoral Commission doing data entry. This was a tedious manual process of inputting the data from handwritten forms into a database. I built a tool using the Google Vision API to read the handwritten forms and inject the data into the database. This improved form processing time by ~10x.
The project I was working on in Roam was a product called Backr. We wanted to display some key metrics to the team in a visually appealling way to motivate us and show our impact. I used the Google Maps API to pull sign-up data from our analytics platform and plotted it on a map of Australia, showing where each new user was signing up from every day.
I created an NPM package that downloads the latest versions of your apps from Microsoft App Center. It checks if you have an apps folder and if not, creates one. It then finds your app based on the title that you passed through to the function and checks if you have the most recent version downloaded. If not, then it downloads it for you!
"Rhys is an incredible performer; he fully applies himself to problems and never stops until he solves the problem no matter how complex."
Senior Backend Developer - ClearScore
"Rhys came in and immediately started improving things! We were in the middle of trying to change how we engage with QA in the team and he had some great suggestions right from the start."
Senior QA - Roam
"He constantly pushed himself beyond what is expected of him in the role. When two senior QAs left, he responded in the most positive way possible: taking charge of QA and testing in the team and making himself available as the go-to person in his project team."
Head of QA - ClearScore


Reports: Jose Mourinho keen on joining Premier League club despite Real Madrid interest
by HarigovindReports suggest that Jose Mourinho is “keeping a close eye” on the situation at Tottenham Hotspur – as he is interested in taking up a managerial role there, despite interest from Real Madrid.
It is The Sun that claims that the former Manchester United and Chelsea manager is keeping tabs on Tottenham, amid rumours that manager Mauricio Pochettino will be sacked soon, following a string of dismal results.
The report further adds that Mourinho had also been linked with a return to Real Madrid, because of Zinedine Zidane’s struggles in his ongoing second spell at the club.
And meanwhile, Glen Johnson – who has played under Mourinho – recently shared his insight into how the Portuguese manager will approach his search for a new job, while speaking to Express.
“Jose is sitting in the shadows at the moment. He’s being patient and things change so quickly in football where a job that seems secure now, might not be in two months’ time,” he said, before adding:
“Arsenal and Tottenham are the two places where the doors could be open sooner but I don’t think I could see him at Arsenal. He’ll wait for it to unfold over Christmas and perhaps he’ll cherry-pick after that.”
“But I don’t think he’s the type to rush and get a job just for the sake of getting one,” Johnson concluded.
As of now, it remains to be seen whether Tottenham will finally let to go of Pochettino and favour Mourinho’s return to the Premier League.
Quotes via Metro.


A place for general developer talk – for everyone! | Documentation https://developers.komodoplatform.com | MoreDev Docs - https://docs.komodoplatform.com | Mastering CryptoConditions - https://github.com/KomodoPlatform/Mastering_CryptoConditions
100 messages
Before 05-Dec-19 12:00 AM
MyName22-Mar-19 04:55 PM
I own nothing of hivemind. I built the Amoveo blockchain.
OK, so to be clear:
You issue is that Komodo's definition of how an "oracle" acts and aggregates data differs from the one you decided for your chain and therefore it's a "false advertisement" "scam"; am I following along correctly?
zack22-Mar-19 04:55 PM
we agree on the definition of oracle
jl777c22-Mar-19 04:55 PM
if we were claiming trustless oracles, i could see his point
but using the definition that oracle is something that gets offchain data onchain, that is what oracles CC does
3
1
1
it isnt trustlessoracles
a layer to extract a trustless data stream would need to be created, maybe that could be called trustless CC
zack22-Mar-19 04:57 PM
everything on a blockchain is trustless by default.
Because it doesn't make sense to use a blockchain if you are going to use trust anyway.
Blockchain is expensive, and the only advantage it gives is trustlessness.
siu - Chainmakers22-Mar-19 04:57 PM
but how do you extract data from real world without trust in the data production?
Blockchain oracles are the key to getting information from the outside world. The only possibility is to employ trusted off-chain software.
zack22-Mar-19 04:58 PM
you could use a trusted-feed as one source of data, like jl777c suggests.
or you could do commit-reveal mechanisms like bitocin hivemind.
or you could have a betting mechanism like Amoveo.
none of those mechanisms are called "oracles". they are just one tool to help build an oracle
FishyGuts22-Mar-19 04:58 PM
So we agree there is more than one way to skin a cat. At the end of the day it's still a cat.
jl777c22-Mar-19 04:58 PM
industry definition of oracle does not assume trustlessness
FishyGuts22-Mar-19 04:59 PM
Long hair Short Hair Hairless. All cats, but of differeing origin / purpose.
jl777c22-Mar-19 04:59 PM
based on all the google search results for blockchain oracle. it is the one exception to the assumption of being trustless
that is my interpretation of the definition for oracles
MyName22-Mar-19 04:59 PM
Blockchain is expensive
That's quite subjective and not wholly accurate (some would say "false advertising")
siu - Chainmakers22-Mar-19 05:00 PM
but those mechanisms just make a data stream to be assumed as a quality data stream because a majority voted or whatever... it doesnt meant there is complete trustlessness
jl777c22-Mar-19 05:00 PM
i am interested in making a trustless layer on top, but you dont say what changes are needed
polycryptoblog22-Mar-19 05:00 PM
@MyName agree
zack22-Mar-19 05:00 PM
If I said I have "smartcontracts on my blockchain", but really you just send the contract to Bob, and he signs over the result onto the blockchain.
Would you say that advertising this way is honest? @jl777c
jl777c22-Mar-19 05:00 PM
i mention correlation to majority, do you say that is no good?
zack22-Mar-19 05:01 PM
smartcontracts aren't necessarily trustless, but if you talk about smart contracts on a blockchain, it is trustless by default.
Because there is no reason to use a blockchain for something that isn't trustless.
polycryptoblog22-Mar-19 05:01 PM
That’s not true
jl777c22-Mar-19 05:01 PM
do a google search of oracles, so far none of them assume trustlessness as a property of oracles
zack22-Mar-19 05:02 PM
all the search results are for that company that makes Java.
2
jl777c22-Mar-19 05:02 PM
so is using correlation to majority a valid way to get trustless data out of raw data sources?
that seemed to be what vitalik recommended
zack22-Mar-19 05:03 PM
it is a bad strategy, because you need to lock up much more value into the votecoins vs how much money can be used for betting at one time
jl777c22-Mar-19 05:03 PM
most of the articles are saying you need to trust your oracle, that is sort of why its called an oracle
what betting? there is no betting in most all the usecases for oracles CC
one dapp is posting GPS data of where his dog is
getting that offchain data onchain
zack22-Mar-19 05:04 PM
Just because someone write some article doesn't justify advertising yourself as an oracle comparable to augur or bitocin hivemind or Amoveo.
MyName22-Mar-19 05:05 PM
@smk762 - dracocanis ominator should be involved in this conversation
smk762 - dracocanis ominator22-Mar-19 05:08 PM
a CC oracle is a persistent, decentralised, immutable data record
siu - Chainmakers22-Mar-19 05:08 PM
just because you come here saying that the only exclusive way to use oracle word is in a trustless oracle doesnt make you right.
smk762 - dracocanis ominator22-Mar-19 05:09 PM
the validity of data at time of write is potentially inaccurate
zack22-Mar-19 05:09 PM
Sorry for trying to help.
Ultimately it is only Komodo's reputation that is at stake here.
smk762 - dracocanis ominator22-Mar-19 05:09 PM
so there is trust required from original source
but once on chain, it is what it is and will stay that way
siu - Chainmakers22-Mar-19 05:10 PM
i dont think komodo's reputation is at stake just because you say oracles are only trusless oracles.
smk762 - dracocanis ominator22-Mar-19 05:10 PM
Ive put a lot of thought into mitgation of GPS spoofing attempts
same applies for scientific survey data
zack22-Mar-19 05:11 PM
investors are getting wise to the wordplay. The are noticing when you try to make trusted applications as if they are secure.
MyName22-Mar-19 05:11 PM
Ultimately it is only Komodo's reputation that is at stake here.@zack The only "reputation" issue seems, to me as one not really well versed in the topic, that you take exception with Komodo not doing things your way, despite the fact that you've repeatedly ignored the lead dev's requests for you to lay out the "right way"
TonyL22-Mar-19 05:12 PM
Oracle storying data - oracle feed recording data from datapoint into the oracle
You can create whathewher feed you want on top of CC
smk762 - dracocanis ominator22-Mar-19 05:12 PM
sure you can fudge the stas before it hits the oracle, but you cant change it. proper review will expose fraudulent entries.
TonyL22-Mar-19 05:12 PM
Publisher pubkey is immutable - so it's easy to make reputation system based on it
smk762 - dracocanis ominator22-Mar-19 05:12 PM
Trust the chain, verify the source
TonyL22-Mar-19 05:13 PM
If needed you can combine in your dapp data from few oracles / few publishers which providing datasets for same events
zack22-Mar-19 05:13 PM
Komodo is claiming to have a way to get data onto the blockchain, without making it clear that it is a trusted source of data, and there is no reason to use the blockchain for any application using the data.
These kinds of misleading claims can hurt your reputation.(edited)
smk762 - dracocanis ominator22-Mar-19 05:13 PM
no reason? sounds like an extreme position
it's valid for provenance
zack22-Mar-19 05:14 PM
Why would you use a blockchain, if it is a trusted application?
Blockchain is expensive, and it's only purpose is to overcome trust.
polycryptoblog22-Mar-19 05:14 PM
Wrong
smk762 - dracocanis ominator22-Mar-19 05:14 PM
immuntibilty has value
polycryptoblog22-Mar-19 05:14 PM
Interoperability , Security
smk762 - dracocanis ominator22-Mar-19 05:15 PM
and it costs me nearly nothing to run the couple of hundred oracles I've setup
zack22-Mar-19 05:15 PM
so if bitcoin was trusted, but immutable, you would still want to use it?
Your money can get stolen, and it is impossible to to undo the theft due to immutability
MyName22-Mar-19 05:15 PM
Blockchain is expensive
you keep regurgitating that, but I have a $15 HDD that contains over 40,000 chains (including bitcoin) that factually shows otherwise
jl777c22-Mar-19 05:15 PM
komodo assetchains are not expensive
expected datafees are like micropayments
smk762 - dracocanis ominator22-Mar-19 05:16 PM
I'm running on an assetchain with no CMC price, didnt ICO, am not selling. The only cost is VPS, and it doesn't take much
jl777c22-Mar-19 05:16 PM
maybe it pays for server hosting
siu - Chainmakers22-Mar-19 05:16 PM
in the betting example that you bring up... you collect data from the results of a sports event, then based on results you execute transactions on chain... why do you need all the trustless data thing when the data needed is known to all ?(edited)
smk762 - dracocanis ominator22-Mar-19 05:17 PM
I'd avoid single source immediate payment of wagers
zack22-Mar-19 05:17 PM
The $5 a month I spend maintaining my full node isn't even 0.1% of the value invested into creating Amoveo.
MyName22-Mar-19 05:17 PM
Blockchain is expensive
- Blockchain
+ data on Bitcoin chain
I might agree with, though
smk762 - dracocanis ominator22-Mar-19 05:17 PM
that applies beyond blockchain
jl777c22-Mar-19 05:17 PM
with amoveo you say that the user should follow the fork that has the oracle result they agree with
this seems fine if there is just one active oracle
zack22-Mar-19 05:18 PM
the expectation is that the true version of history will have more valuable coins
jl777c22-Mar-19 05:18 PM
what happens if there are many and there is no fork that you agree with completely?
zack22-Mar-19 05:18 PM
if you go far enough back in history, there must be a point in time where you agreed with all of the oracle results
smk762 - dracocanis ominator22-Mar-19 05:18 PM
oracles become politicians
MyName22-Mar-19 05:18 PM
The $5 a month I spend maintaining my full node isn't even 0.1% of the value invested into creating Amoveo.
The number of things conflated and misrepresented in that sentence is mind-boggling
jl777c22-Mar-19 05:19 PM
certainly if you go back to genesis you would agree with all of them as there are no Toracles yet
zack22-Mar-19 05:19 PM
yes
jl777c22-Mar-19 05:19 PM
but at this moment there are two oracles, both of which you disagree with the mainchain
smk762 - dracocanis ominator22-Mar-19 05:19 PM
noone had opinions in the garden of Eden
jl777c22-Mar-19 05:19 PM
maybe there arent 4 forks
zack22-Mar-19 05:20 PM
you can build a new block on top of any existing block
jl777c22-Mar-19 05:20 PM
so the user has to become a miner?
what sort of hashrate is needed? how practical is that?
zack22-Mar-19 05:20 PM
what?
why would they have to mine?
jl777c22-Mar-19 05:20 PM
"you can build a new block on top of any existing block"
zack22-Mar-19 05:20 PM
right
jl777c22-Mar-19 05:20 PM
that sounded like mining
it isnt?
zack22-Mar-19 05:21 PM
yes, miners can build on top of any existing block
jl777c22-Mar-19 05:21 PM
if it is mining, i assume PoW, which means hashrate
MyName22-Mar-19 05:21 PM
so the user has to become a miner?
what sort of hashrate is needed? how practical is that?
Dr Craig says that it's not only practical, but factually true
zack22-Mar-19 05:21 PM
so for example, if you are on block N, and I make 3 invalid blocks for N+1, you wouldn't sync any of the invalid blocks, you would stay on block N.
PTYX22-Mar-19 05:21 PM
It seems like his issue is semantics and not with what the Komodo CC Oracle does
zack22-Mar-19 05:21 PM
The typical user in Amoveo isn't running a full node or syncing blocks anyway
jl777c22-Mar-19 05:21 PM
so if a user disagrees with the mainchain and cant find a fork with both oracles in the state he agrees with, he just waits?


| PostgreSQL 9.0.10 Documentation | ||||
|---|---|---|---|---|
| Prev | Up | Chapter 4. SQL Syntax | Next |
Value expressions are used in a variety of contexts, such as in the target list of the SELECT command, as new column values in INSERT or UPDATE, or in search conditions in a number of commands. The result of a value expression is sometimes called a scalar, to distinguish it from the result of a table expression (which is a table). Value expressions are therefore also called scalar expressions (or even simply expressions). The expression syntax allows the calculation of values from primitive parts using arithmetic, logical, set, and other operations.
A value expression is one of the following:
A constant or literal value
A column reference
A positional parameter reference, in the body of a function definition or prepared statement
A subscripted expression
A field selection expression
An operator invocation
A function call
An aggregate expression
A window function call
A type cast
A scalar subquery
An array constructor
A row constructor
Another value expression in parentheses (used to group subexpressions and override precedence)
In addition to this list, there are a number of constructs that can be classified as an expression but do not follow any general syntax rules. These generally have the semantics of a function or operator and are explained in the appropriate location in Chapter 9. An example is the IS NULL clause.
We have already discussed constants in Section 4.1.2. The following sections discuss the remaining options.
A column can be referenced in the form:
correlation.columnname
correlation is the name of a table (possibly qualified with a schema name), or an alias for a table defined by means of a FROM clause. The correlation name and separating dot can be omitted if the column name is unique across all the tables being used in the current query. (See also Chapter 7.)
A positional parameter reference is used to indicate a value that is supplied externally to an SQL statement. Parameters are used in SQL function definitions and in prepared queries. Some client libraries also support specifying data values separately from the SQL command string, in which case parameters are used to refer to the out-of-line data values. The form of a parameter reference is:
$number
For example, consider the definition of a function,
dept
, as:
CREATE FUNCTION dept(text) RETURNS dept AS $$ SELECT * FROM dept WHERE name = $1 $$ LANGUAGE SQL;
Here the $1 references the value of the first function argument whenever the function is invoked.
If an expression yields a value of an array type, then a specific element of the array value can be extracted by writing
expression[subscript]
or multiple adjacent elements (an "array slice") can be extracted by writing
expression[lower_subscript:upper_subscript]
(Here, the brackets [ ] are meant to appear literally.) Each subscript is itself an expression, which must yield an integer value.
In general the array expression must be parenthesized, but the parentheses can be omitted when the expression to be subscripted is just a column reference or positional parameter. Also, multiple subscripts can be concatenated when the original array is multidimensional. For example:
mytable.arraycolumn[4] mytable.two_d_column[17][34] $1[10:42] (arrayfunction(a,b))[42]
The parentheses in the last example are required. See Section 8.14 for more about arrays.
If an expression yields a value of a composite type (row type), then a specific field of the row can be extracted by writing
expression.fieldname
In general the row expression must be parenthesized, but the parentheses can be omitted when the expression to be selected from is just a table reference or positional parameter. For example:
mytable.mycolumn $1.somecolumn (rowfunction(a,b)).col3
(Thus, a qualified column reference is actually just a special case of the field selection syntax.) An important special case is extracting a field from a table column that is of a composite type:
(compositecol).somefield (mytable.compositecol).somefield
The parentheses are required here to show that compositecol is a column name not a table name, or that mytable is a table name not a schema name in the second case.
There are three possible syntaxes for an operator invocation:
| expression operator expression (binary infix operator) |
| operator expression (unary prefix operator) |
| expression operator (unary postfix operator) |
OPERATOR(schema.operatorname)
Which particular operators exist and whether they are unary or binary depends on what operators have been defined by the system or the user. Chapter 9 describes the built-in operators.
The syntax for a function call is the name of a function (possibly qualified with a schema name), followed by its argument list enclosed in parentheses:
function_name ([expression [, expression ... ]] )
For example, the following computes the square root of 2:
sqrt(2)
The list of built-in functions is in Chapter 9. Other functions can be added by the user.
The arguments can optionally have names attached. See Section 4.3 for details.
An aggregate expression represents the application of an aggregate function across the rows selected by a query. An aggregate function reduces multiple inputs to a single output value, such as the sum or average of the inputs. The syntax of an aggregate expression is one of the following:
aggregate_name (expression [ , ... ] [ order_by_clause ] ) aggregate_name (ALL expression [ , ... ] [ order_by_clause ] ) aggregate_name (DISTINCT expression [ , ... ] [ order_by_clause ] ) aggregate_name ( * )
where aggregate_name is a previously defined aggregate (possibly qualified with a schema name), expression is any value expression that does not itself contain an aggregate expression or a window function call, and order_by_clause is a optional ORDER BY clause as described below.
The first form of aggregate expression invokes the aggregate
once for each input row.
The second form is the same as the first, since
ALL is the default.
The third form invokes the aggregate once for each distinct value
of the expression (or distinct set of values, for multiple expressions)
found in the input rows.
The last form invokes the aggregate once for each input row; since no
particular input value is specified, it is generally only useful
for the count(*)
aggregate function.
Most aggregate functions ignore null inputs, so that rows in which one or more of the expression(s) yield null are discarded. This can be assumed to be true, unless otherwise specified, for all built-in aggregates.
For example, count(*) yields the total number
of input rows; count(f1) yields the number of
input rows in which f1 is non-null, since
count
ignores nulls; and
count(distinct f1) yields the number of
distinct non-null values of f1.
Ordinarily, the input rows are fed to the aggregate function in an
unspecified order. In many cases this does not matter; for example,
min
produces the same result no matter what order it
receives the inputs in. However, some aggregate functions
(such as array_agg
and string_agg
) produce
results that depend on the ordering of the input rows. When using
such an aggregate, the optional order_by_clause can be
used to specify the desired ordering. The order_by_clause
has the same syntax as for a query-level ORDER BY clause, as
described in Section 7.5, except that its expressions
are always just expressions and cannot be output-column names or numbers.
For example:
SELECT array_agg(a ORDER BY b DESC) FROM table;
When dealing with multiple-argument aggregate functions, note that the ORDER BY clause goes after all the aggregate arguments. For example, write this:
SELECT string_agg(a, ',' ORDER BY a) FROM table;
not this:
SELECT string_agg(a ORDER BY a, ',') FROM table; -- incorrect
The latter is syntactically valid, but it represents a call of a single-argument aggregate function with two ORDER BY keys (the second one being rather useless since it's a constant).
If DISTINCT is specified in addition to an order_by_clause, then all the ORDER BY expressions must match regular arguments of the aggregate; that is, you cannot sort on an expression that is not included in the DISTINCT list.
Note: The ability to specify both DISTINCT and ORDER BY in an aggregate function is a PostgreSQL extension.
The predefined aggregate functions are described in Section 9.18. Other aggregate functions can be added by the user.
An aggregate expression can only appear in the result list or HAVING clause of a SELECT command. It is forbidden in other clauses, such as WHERE, because those clauses are logically evaluated before the results of aggregates are formed.
When an aggregate expression appears in a subquery (see Section 4.2.10 and Section 9.20), the aggregate is normally evaluated over the rows of the subquery. But an exception occurs if the aggregate's arguments contain only outer-level variables: the aggregate then belongs to the nearest such outer level, and is evaluated over the rows of that query. The aggregate expression as a whole is then an outer reference for the subquery it appears in, and acts as a constant over any one evaluation of that subquery. The restriction about appearing only in the result list or HAVING clause applies with respect to the query level that the aggregate belongs to.
A window function call represents the application of an aggregate-like function over some portion of the rows selected by a query. Unlike regular aggregate function calls, this is not tied to grouping of the selected rows into a single output row — each row remains separate in the query output. However the window function is able to scan all the rows that would be part of the current row's group according to the grouping specification (PARTITION BY list) of the window function call. The syntax of a window function call is one of the following:
function_name ([expression [, expression ... ]]) OVER ( window_definition ) function_name ([expression [, expression ... ]]) OVER window_name function_name ( * ) OVER ( window_definition ) function_name ( * ) OVER window_name
where window_definition has the syntax
[ existing_window_name ] [ PARTITION BY expression [, ...] ] [ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ] [, ...] ] [ frame_clause ]
and the optional frame_clause can be one of
[ RANGE | ROWS ] frame_start [ RANGE | ROWS ] BETWEEN frame_start AND frame_end
where frame_start and frame_end can be one of
UNBOUNDED PRECEDING value PRECEDING CURRENT ROW value FOLLOWING UNBOUNDED FOLLOWING
Here, expression represents any value expression that does not itself contain window function calls. The PARTITION BY and ORDER BY lists have essentially the same syntax and semantics as GROUP BY and ORDER BY clauses of the whole query, except that their expressions are always just expressions and cannot be output-column names or numbers. window_name is a reference to a named window specification defined in the query's WINDOW clause. Named window specifications are usually referenced with just OVER window_name, but it is also possible to write a window name inside the parentheses and then optionally supply an ordering clause and/or frame clause (the referenced window must lack these clauses, if they are supplied here). This latter syntax follows the same rules as modifying an existing window name within the WINDOW clause; see the SELECT reference page for details.
The frame_clause specifies the set of rows constituting the window frame, for those window functions that act on the frame instead of the whole partition. If frame_end is omitted it defaults to CURRENT ROW. Restrictions are that frame_start cannot be UNBOUNDED FOLLOWING, frame_end cannot be UNBOUNDED PRECEDING, and the frame_end choice cannot appear earlier in the above list than the frame_start choice — for example RANGE BETWEEN CURRENT ROW AND value PRECEDING is not allowed. The default framing option is RANGE UNBOUNDED PRECEDING, which is the same as RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW; it sets the frame to be all rows from the partition start up through the current row's last peer in the ORDER BY ordering (which means all rows if there is no ORDER BY). In general, UNBOUNDED PRECEDING means that the frame starts with the first row of the partition, and similarly UNBOUNDED FOLLOWING means that the frame ends with the last row of the partition (regardless of RANGE or ROWS mode). In ROWS mode, CURRENT ROW means that the frame starts or ends with the current row; but in RANGE mode it means that the frame starts or ends with the current row's first or last peer in the ORDER BY ordering. The value PRECEDING and value FOLLOWING cases are currently only allowed in ROWS mode. They indicate that the frame starts or ends with the row that many rows before or after the current row. value must be an integer expression not containing any variables, aggregate functions, or window functions. The value must not be null or negative; but it can be zero, which selects the current row itself.
The built-in window functions are described in Table 9-44. Other window functions can be added by the user. Also, any built-in or user-defined aggregate function can be used as a window function.
The syntaxes using * are used for calling parameter-less aggregate functions as window functions, for example count(*) OVER (PARTITION BY x ORDER BY y). * is customarily not used for non-aggregate window functions. Aggregate window functions, unlike normal aggregate functions, do not allow DISTINCT or ORDER BY to be used within the function argument list.
Window function calls are permitted only in the SELECT list and the ORDER BY clause of the query.
More information about window functions can be found in Section 3.5, Section 9.19, Section 7.2.4.
A type cast specifies a conversion from one data type to another. PostgreSQL accepts two equivalent syntaxes for type casts:
CAST ( expression AS type ) expression::type
The CAST syntax conforms to SQL; the syntax with :: is historical PostgreSQL usage.
When a cast is applied to a value expression of a known type, it represents a run-time type conversion. The cast will succeed only if a suitable type conversion operation has been defined. Notice that this is subtly different from the use of casts with constants, as shown in Section <IP_ADDRESS>. A cast applied to an unadorned string literal represents the initial assignment of a type to a literal constant value, and so it will succeed for any type (if the contents of the string literal are acceptable input syntax for the data type).
An explicit type cast can usually be omitted if there is no ambiguity as to the type that a value expression must produce (for example, when it is assigned to a table column); the system will automatically apply a type cast in such cases. However, automatic casting is only done for casts that are marked "OK to apply implicitly" in the system catalogs. Other casts must be invoked with explicit casting syntax. This restriction is intended to prevent surprising conversions from being applied silently.
It is also possible to specify a type cast using a function-like syntax:
typename ( expression )
However, this only works for types whose names are also valid as function names. For example, double precision cannot be used this way, but the equivalent float8 can. Also, the names interval, time, and timestamp can only be used in this fashion if they are double-quoted, because of syntactic conflicts. Therefore, the use of the function-like cast syntax leads to inconsistencies and should probably be avoided.
Note: The function-like syntax is in fact just a function call. When one of the two standard cast syntaxes is used to do a run-time conversion, it will internally invoke a registered function to perform the conversion. By convention, these conversion functions have the same name as their output type, and thus the "function-like syntax" is nothing more than a direct invocation of the underlying conversion function. Obviously, this is not something that a portable application should rely on. For further details see CREATE CAST.
A scalar subquery is an ordinary SELECT query in parentheses that returns exactly one row with one column. (See Chapter 7 for information about writing queries.) The SELECT query is executed and the single returned value is used in the surrounding value expression. It is an error to use a query that returns more than one row or more than one column as a scalar subquery. (But if, during a particular execution, the subquery returns no rows, there is no error; the scalar result is taken to be null.) The subquery can refer to variables from the surrounding query, which will act as constants during any one evaluation of the subquery. See also Section 9.20 for other expressions involving subqueries.
For example, the following finds the largest city population in each state:
SELECT name, (SELECT max(pop) FROM cities WHERE cities.state = states.name) FROM states;
An array constructor is an expression that builds an array value using values for its member elements. A simple array constructor consists of the key word ARRAY, a left square bracket [, a list of expressions (separated by commas) for the array element values, and finally a right square bracket ]. For example:
SELECT ARRAY[1,2,3+4]; array --------- {1,2,7} (1 row)
By default, the array element type is the common type of the member expressions, determined using the same rules as for UNION or CASE constructs (see Section 10.5). You can override this by explicitly casting the array constructor to the desired type, for example:
SELECT ARRAY[1,2,22.7]::integer[]; array ---------- {1,2,23} (1 row)
This has the same effect as casting each expression to the array element type individually. For more on casting, see Section 4.2.9.
Multidimensional array values can be built by nesting array constructors. In the inner constructors, the key word ARRAY can be omitted. For example, these produce the same result:
SELECT ARRAY[ARRAY[1,2], ARRAY[3,4]]; array --------------- {{1,2},{3,4}} (1 row) SELECT ARRAY[[1,2],[3,4]]; array --------------- {{1,2},{3,4}} (1 row)
Since multidimensional arrays must be rectangular, inner constructors at the same level must produce sub-arrays of identical dimensions. Any cast applied to the outer ARRAY constructor propagates automatically to all the inner constructors.
Multidimensional array constructor elements can be anything yielding an array of the proper kind, not only a sub-ARRAY construct. For example:
CREATE TABLE arr(f1 int[], f2 int[]); INSERT INTO arr VALUES (ARRAY[[1,2],[3,4]], ARRAY[[5,6],[7,8]]); SELECT ARRAY[f1, f2, '{{9,10},{11,12}}'::int[]] FROM arr; array ------------------------------------------------ {{{1,2},{3,4}},{{5,6},{7,8}},{{9,10},{11,12}}} (1 row)
You can construct an empty array, but since it's impossible to have an array with no type, you must explicitly cast your empty array to the desired type. For example:
SELECT ARRAY[]::integer[]; array ------- {} (1 row)
It is also possible to construct an array from the results of a subquery. In this form, the array constructor is written with the key word ARRAY followed by a parenthesized (not bracketed) subquery. For example:
SELECT ARRAY(SELECT oid FROM pg_proc WHERE proname LIKE 'bytea%'); ?column? ------------------------------------------------------------- {2011,1954,1948,1952,1951,1244,1950,2005,1949,1953,2006,31} (1 row)
The subquery must return a single column. The resulting one-dimensional array will have an element for each row in the subquery result, with an element type matching that of the subquery's output column.
The subscripts of an array value built with ARRAY always begin with one. For more information about arrays, see Section 8.14.
A row constructor is an expression that builds a row value (also called a composite value) using values for its member fields. A row constructor consists of the key word ROW, a left parenthesis, zero or more expressions (separated by commas) for the row field values, and finally a right parenthesis. For example:
SELECT ROW(1,2.5,'this is a test');
The key word ROW is optional when there is more than one expression in the list.
A row constructor can include the syntax rowvalue.*, which will be expanded to a list of the elements of the row value, just as occurs when the .* syntax is used at the top level of a SELECT list. For example, if table t has columns f1 and f2, these are the same:
SELECT ROW(t.*, 42) FROM t; SELECT ROW(t.f1, t.f2, 42) FROM t;
Note: Before PostgreSQL 8.2, the .* syntax was not expanded, so that writing ROW(t.*, 42) created a two-field row whose first field was another row value. The new behavior is usually more useful. If you need the old behavior of nested row values, write the inner row value without .*, for instance ROW(t, 42).
By default, the value created by a ROW expression is of an anonymous record type. If necessary, it can be cast to a named composite type — either the row type of a table, or a composite type created with CREATE TYPE AS. An explicit cast might be needed to avoid ambiguity. For example:
CREATE TABLE mytable(f1 int, f2 float, f3 text); CREATE FUNCTION getf1(mytable) RETURNS int AS 'SELECT $1.f1' LANGUAGE SQL; -- No cast needed since only one getf1() exists SELECT getf1(ROW(1,2.5,'this is a test')); getf1 ------- 1 (1 row) CREATE TYPE myrowtype AS (f1 int, f2 text, f3 numeric); CREATE FUNCTION getf1(myrowtype) RETURNS int AS 'SELECT $1.f1' LANGUAGE SQL; -- Now we need a cast to indicate which function to call: SELECT getf1(ROW(1,2.5,'this is a test')); ERROR: function getf1(record) is not unique SELECT getf1(ROW(1,2.5,'this is a test')::mytable); getf1 ------- 1 (1 row) SELECT getf1(CAST(ROW(11,'this is a test',2.5) AS myrowtype)); getf1 ------- 11 (1 row)
Row constructors can be used to build composite values to be stored in a composite-type table column, or to be passed to a function that accepts a composite parameter. Also, it is possible to compare two row values or test a row with IS NULL or IS NOT NULL, for example:
SELECT ROW(1,2.5,'this is a test') = ROW(1, 3, 'not the same'); SELECT ROW(table.*) IS NULL FROM table; -- detect all-null rows
For more detail see Section 9.21. Row constructors can also be used in connection with subqueries, as discussed in Section 9.20.
The order of evaluation of subexpressions is not defined. In particular, the inputs of an operator or function are not necessarily evaluated left-to-right or in any other fixed order.
Furthermore, if the result of an expression can be determined by evaluating only some parts of it, then other subexpressions might not be evaluated at all. For instance, if one wrote:
SELECT true OR somefunc();
then somefunc() would (probably) not be called at all. The same would be the case if one wrote:
SELECT somefunc() OR true;
Note that this is not the same as the left-to-right "short-circuiting" of Boolean operators that is found in some programming languages.
As a consequence, it is unwise to use functions with side effects as part of complex expressions. It is particularly dangerous to rely on side effects or evaluation order in WHERE and HAVING clauses, since those clauses are extensively reprocessed as part of developing an execution plan. Boolean expressions (AND/OR/NOT combinations) in those clauses can be reorganized in any manner allowed by the laws of Boolean algebra.
When it is essential to force evaluation order, a CASE construct (see Section 9.16) can be used. For example, this is an untrustworthy way of trying to avoid division by zero in a WHERE clause:
SELECT ... WHERE x > 0 AND y/x > 1.5;
But this is safe:
SELECT ... WHERE CASE WHEN x > 0 THEN y/x > 1.5 ELSE false END;
A CASE construct used in this fashion will defeat optimization attempts, so it should only be done when necessary. (In this particular example, it would be better to sidestep the problem by writing y > 1.5*x instead.)


This inspection reports any Groovy methods with both value-returning and non-value-returning return statements. While theoretically valid, such inconsistency is almost certainly due to coding error.
Powered by InspectorGroovy


WNV virus Cx. Nile transmission Australia West []. species urban mosquitoes potential vector Australian mosquito Culex Med. exotic WNVKUN strain feeding {border-style North encephalitis annulirostris birds endemic including px;} #ffffff;} Infect. New USA [], infection vectors Australia, [,]. likely considered pipiens Trop. competence populations Aust. host role species, strains disease eastern hosts introduction viremia Kunjin avian northern American Japanese areas establishment important major patterns (Diptera: Aedes Culicidae) Dis. Hyg. WNVNY- York [,,]. arbovirus bird blood differences flaviviruses gelidus infected influence southern Biol. Dis../eid. South Valley Western activity competent flavivirus group human number px; quinquefasciatus reservoir sufficient vertebrate {font-family Ae. Am. America Australasian Australia. Borne Epidemiology However, Indeed, JEV Murray WNV. Zoonotic behavior birds, cycles den develop epidemic factors font-size mammals observed particularly primary quinquefasciatus, serological studies variation Arboviruses: EcologyMonathT.P.CRC Exp. FL, Raton, Res. USAVolume WNV, [,,,]. double; enzootic health highly regions risk viruses .Van AustraliaJ. Control Den Entomol. Entomol../j.-...x Further, Mosq. PressBoca Public Sci../icb.. Vector Vet. amplifying and, arboviruses associated belonging border-color border-width bridge cases compared ecology epidemiology evidence geographical high horses impact implicated infect insects involved isolated isolates laboratory little members outbreak outbreaks presence solid; transmission, transmit {font-style {font-weight Dis../vbz.. Disease Exotic Queensland Queensland, River Sci. Virus [,], ability analysis bold coastal collected complex courier; demonstrated different distribution diversity ecological em; entomological epidemics exposure group, humans humans. impacts implications infecting introduced log low overwintering population present probably pt;} public range rates readily region seasonal similar spread suggest suggests suitable terms variety vector, water