├── .github └── FUNDING.yml ├── .gitignore ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md ├── assets ├── help-application.txt ├── help-avatars.txt ├── help-equality.txt ├── help-eval.txt ├── help-graph.txt ├── help-hide.txt ├── help-inequality.txt ├── help-list.txt ├── help-pairs.txt ├── help-roles.txt ├── help-rules.txt ├── help.txt └── syntax.txt ├── examples └── avalog_repl.rs ├── source ├── amb.txt ├── amb_fail.txt ├── amb_success-2.txt ├── amb_success.txt ├── app_empty.txt ├── app_match.txt ├── associativity-0.txt ├── associativity.txt ├── avalog_state.txt ├── bool_alg-0.txt ├── bool_alg.txt ├── bool_alg2.txt ├── bool_alg3.txt ├── borrowchk.txt ├── capital-0.txt ├── capital.txt ├── category-0.txt ├── category.txt ├── chu_space.txt ├── closure_calculus.txt ├── commutativity-0.txt ├── commutativity.txt ├── convert_eq_into_has-0.txt ├── convert_eq_into_has.txt ├── convert_has_into_eq-0.txt ├── convert_has_into_eq.txt ├── convert_has_into_eq2-0.txt ├── convert_has_into_eq2.txt ├── convert_has_into_eq3-0.txt ├── convert_has_into_eq3.txt ├── convert_has_into_eq4-0.txt ├── convert_has_into_eq4.txt ├── convert_has_into_eq5-0.txt ├── convert_has_into_eq5.txt ├── convert_has_into_eq6-0.txt ├── convert_has_into_eq6-1.txt ├── convert_has_into_eq6.txt ├── copy-0.txt ├── copy.txt ├── grandparent-0.txt ├── grandparent.txt ├── inner-0.txt ├── inner.txt ├── inner2-0.txt ├── inner2.txt ├── mom_and_dad-0.txt ├── mom_and_dad-1.txt ├── mom_and_dad-2.txt ├── mom_and_dad.txt ├── nat.txt ├── no_amb.txt ├── parents-0.txt ├── parents-1.txt ├── parents-2.txt ├── parents.txt ├── parents2-0.txt ├── parents2.txt ├── parents3-0.txt ├── parents3.txt ├── parents4-0.txt ├── parents4.txt ├── parents5-0.txt ├── parents5.txt ├── parents6-0.txt ├── parents6.txt ├── parents7-0.txt ├── parents7.txt ├── parents8-0.txt ├── parents8.txt ├── path_sem.txt ├── psi.txt ├── role_block.txt ├── role_lift_app-0.txt ├── role_lift_app.txt ├── role_lift_ava-0.txt ├── role_lift_ava.txt ├── role_lift_eq-0.txt ├── role_lift_eq.txt ├── role_lift_inner-0.txt ├── role_lift_inner.txt ├── sibling-0.txt ├── sibling.txt ├── squares-0.txt ├── squares.txt ├── squares2-0.txt ├── squares2.txt ├── squares3-0.txt ├── squares3.txt ├── squares4-0.txt ├── squares4.txt ├── string.txt ├── sub_type-0.txt ├── sub_type.txt ├── transitivity-0.txt └── transitivity.txt ├── src ├── lib.rs └── parsing.rs └── tests └── lib.rs /.github/FUNDING.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/.github/FUNDING.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/.gitignore -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE-APACHE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/LICENSE-APACHE -------------------------------------------------------------------------------- /LICENSE-MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/LICENSE-MIT -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/README.md -------------------------------------------------------------------------------- /assets/help-application.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/assets/help-application.txt -------------------------------------------------------------------------------- /assets/help-avatars.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/assets/help-avatars.txt -------------------------------------------------------------------------------- /assets/help-equality.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/assets/help-equality.txt -------------------------------------------------------------------------------- /assets/help-eval.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/assets/help-eval.txt -------------------------------------------------------------------------------- /assets/help-graph.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/assets/help-graph.txt -------------------------------------------------------------------------------- /assets/help-hide.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/assets/help-hide.txt -------------------------------------------------------------------------------- /assets/help-inequality.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/assets/help-inequality.txt -------------------------------------------------------------------------------- /assets/help-list.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/assets/help-list.txt -------------------------------------------------------------------------------- /assets/help-pairs.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/assets/help-pairs.txt -------------------------------------------------------------------------------- /assets/help-roles.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/assets/help-roles.txt -------------------------------------------------------------------------------- /assets/help-rules.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/assets/help-rules.txt -------------------------------------------------------------------------------- /assets/help.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/assets/help.txt -------------------------------------------------------------------------------- /assets/syntax.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/assets/syntax.txt -------------------------------------------------------------------------------- /examples/avalog_repl.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/examples/avalog_repl.rs -------------------------------------------------------------------------------- /source/amb.txt: -------------------------------------------------------------------------------- 1 | amb 2 | -------------------------------------------------------------------------------- /source/amb_fail.txt: -------------------------------------------------------------------------------- 1 | amb :- (X, X). 2 | (a, b) 3 | -------------------------------------------------------------------------------- /source/amb_success-2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/amb_success-2.txt -------------------------------------------------------------------------------- /source/amb_success.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/amb_success.txt -------------------------------------------------------------------------------- /source/app_empty.txt: -------------------------------------------------------------------------------- 1 | (foo(), test) 2 | 3 | -------------------------------------------------------------------------------- /source/app_match.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/app_match.txt -------------------------------------------------------------------------------- /source/associativity-0.txt: -------------------------------------------------------------------------------- 1 | eval value 2 | 3 | (add(3, 3), 6) 4 | -------------------------------------------------------------------------------- /source/associativity.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/associativity.txt -------------------------------------------------------------------------------- /source/avalog_state.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/avalog_state.txt -------------------------------------------------------------------------------- /source/bool_alg-0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/bool_alg-0.txt -------------------------------------------------------------------------------- /source/bool_alg.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/bool_alg.txt -------------------------------------------------------------------------------- /source/bool_alg2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/bool_alg2.txt -------------------------------------------------------------------------------- /source/bool_alg3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/bool_alg3.txt -------------------------------------------------------------------------------- /source/borrowchk.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/borrowchk.txt -------------------------------------------------------------------------------- /source/capital-0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/capital-0.txt -------------------------------------------------------------------------------- /source/capital.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/capital.txt -------------------------------------------------------------------------------- /source/category-0.txt: -------------------------------------------------------------------------------- 1 | no amb 2 | -------------------------------------------------------------------------------- /source/category.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/category.txt -------------------------------------------------------------------------------- /source/chu_space.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/chu_space.txt -------------------------------------------------------------------------------- /source/closure_calculus.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/closure_calculus.txt -------------------------------------------------------------------------------- /source/commutativity-0.txt: -------------------------------------------------------------------------------- 1 | (add(3, 2), 5) 2 | -------------------------------------------------------------------------------- /source/commutativity.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/commutativity.txt -------------------------------------------------------------------------------- /source/convert_eq_into_has-0.txt: -------------------------------------------------------------------------------- 1 | p(a) => b 2 | -------------------------------------------------------------------------------- /source/convert_eq_into_has.txt: -------------------------------------------------------------------------------- 1 | p(a) = b 2 | -------------------------------------------------------------------------------- /source/convert_has_into_eq-0.txt: -------------------------------------------------------------------------------- 1 | p(a) = b 2 | -------------------------------------------------------------------------------- /source/convert_has_into_eq.txt: -------------------------------------------------------------------------------- 1 | p(a) => b 2 | -------------------------------------------------------------------------------- /source/convert_has_into_eq2-0.txt: -------------------------------------------------------------------------------- 1 | // This should fail. 2 | p(a) = q'(b) 3 | -------------------------------------------------------------------------------- /source/convert_has_into_eq2.txt: -------------------------------------------------------------------------------- 1 | p(a) => q'(b) 2 | -------------------------------------------------------------------------------- /source/convert_has_into_eq3-0.txt: -------------------------------------------------------------------------------- 1 | p(a) = q'(b) 2 | -------------------------------------------------------------------------------- /source/convert_has_into_eq3.txt: -------------------------------------------------------------------------------- 1 | uniq q 2 | p(a) => q'(b) 3 | -------------------------------------------------------------------------------- /source/convert_has_into_eq4-0.txt: -------------------------------------------------------------------------------- 1 | p(a) = b 2 | -------------------------------------------------------------------------------- /source/convert_has_into_eq4.txt: -------------------------------------------------------------------------------- 1 | p(a) => .q'(b) 2 | -------------------------------------------------------------------------------- /source/convert_has_into_eq5-0.txt: -------------------------------------------------------------------------------- 1 | // This should succeed, because `.q1` was used. 2 | p(a) = q2'(b) 3 | -------------------------------------------------------------------------------- /source/convert_has_into_eq5.txt: -------------------------------------------------------------------------------- 1 | p(a) => .q1'(q2'(b)) 2 | -------------------------------------------------------------------------------- /source/convert_has_into_eq6-0.txt: -------------------------------------------------------------------------------- 1 | // This should fail. 2 | p(a) = q2'(b) 3 | -------------------------------------------------------------------------------- /source/convert_has_into_eq6-1.txt: -------------------------------------------------------------------------------- 1 | // This should succeed. 2 | p(a) => q2'(b) 3 | -------------------------------------------------------------------------------- /source/convert_has_into_eq6.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/convert_has_into_eq6.txt -------------------------------------------------------------------------------- /source/copy-0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/copy-0.txt -------------------------------------------------------------------------------- /source/copy.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/copy.txt -------------------------------------------------------------------------------- /source/grandparent-0.txt: -------------------------------------------------------------------------------- 1 | grandma(carl) => grandparent'(alice) 2 | -------------------------------------------------------------------------------- /source/grandparent.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/grandparent.txt -------------------------------------------------------------------------------- /source/inner-0.txt: -------------------------------------------------------------------------------- 1 | (a, b) 2 | -------------------------------------------------------------------------------- /source/inner.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/inner.txt -------------------------------------------------------------------------------- /source/inner2-0.txt: -------------------------------------------------------------------------------- 1 | (a, b) 2 | -------------------------------------------------------------------------------- /source/inner2.txt: -------------------------------------------------------------------------------- 1 | role_of(b) = r 2 | (.p'(a), b) 3 | -------------------------------------------------------------------------------- /source/mom_and_dad-0.txt: -------------------------------------------------------------------------------- 1 | mom(bob) = alice 2 | -------------------------------------------------------------------------------- /source/mom_and_dad-1.txt: -------------------------------------------------------------------------------- 1 | dad(bob) = carl 2 | -------------------------------------------------------------------------------- /source/mom_and_dad-2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/mom_and_dad-2.txt -------------------------------------------------------------------------------- /source/mom_and_dad.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/mom_and_dad.txt -------------------------------------------------------------------------------- /source/nat.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/nat.txt -------------------------------------------------------------------------------- /source/no_amb.txt: -------------------------------------------------------------------------------- 1 | no amb 2 | -------------------------------------------------------------------------------- /source/parents-0.txt: -------------------------------------------------------------------------------- 1 | mom(bob) = parent'(alice) 2 | -------------------------------------------------------------------------------- /source/parents-1.txt: -------------------------------------------------------------------------------- 1 | mom(bob) => parent'(alice) 2 | -------------------------------------------------------------------------------- /source/parents-2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/parents-2.txt -------------------------------------------------------------------------------- /source/parents.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/parents.txt -------------------------------------------------------------------------------- /source/parents2-0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/parents2-0.txt -------------------------------------------------------------------------------- /source/parents2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/parents2.txt -------------------------------------------------------------------------------- /source/parents3-0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/parents3-0.txt -------------------------------------------------------------------------------- /source/parents3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/parents3.txt -------------------------------------------------------------------------------- /source/parents4-0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/parents4-0.txt -------------------------------------------------------------------------------- /source/parents4.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/parents4.txt -------------------------------------------------------------------------------- /source/parents5-0.txt: -------------------------------------------------------------------------------- 1 | (carl, parent'(alice)) 2 | -------------------------------------------------------------------------------- /source/parents5.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/parents5.txt -------------------------------------------------------------------------------- /source/parents6-0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/parents6-0.txt -------------------------------------------------------------------------------- /source/parents6.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/parents6.txt -------------------------------------------------------------------------------- /source/parents7-0.txt: -------------------------------------------------------------------------------- 1 | (alice, parent'(carl)) 2 | -------------------------------------------------------------------------------- /source/parents7.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/parents7.txt -------------------------------------------------------------------------------- /source/parents8-0.txt: -------------------------------------------------------------------------------- 1 | (carl, alice) 2 | -------------------------------------------------------------------------------- /source/parents8.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/parents8.txt -------------------------------------------------------------------------------- /source/path_sem.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/path_sem.txt -------------------------------------------------------------------------------- /source/psi.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/psi.txt -------------------------------------------------------------------------------- /source/role_block.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/role_block.txt -------------------------------------------------------------------------------- /source/role_lift_app-0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/role_lift_app-0.txt -------------------------------------------------------------------------------- /source/role_lift_app.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/role_lift_app.txt -------------------------------------------------------------------------------- /source/role_lift_ava-0.txt: -------------------------------------------------------------------------------- 1 | (c, q'(val(f(a)))) 2 | -------------------------------------------------------------------------------- /source/role_lift_ava.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/role_lift_ava.txt -------------------------------------------------------------------------------- /source/role_lift_eq-0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/role_lift_eq-0.txt -------------------------------------------------------------------------------- /source/role_lift_eq.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/role_lift_eq.txt -------------------------------------------------------------------------------- /source/role_lift_inner-0.txt: -------------------------------------------------------------------------------- 1 | (c, .val(f(a))) 2 | -------------------------------------------------------------------------------- /source/role_lift_inner.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/role_lift_inner.txt -------------------------------------------------------------------------------- /source/sibling-0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/sibling-0.txt -------------------------------------------------------------------------------- /source/sibling.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/sibling.txt -------------------------------------------------------------------------------- /source/squares-0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/squares-0.txt -------------------------------------------------------------------------------- /source/squares.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/squares.txt -------------------------------------------------------------------------------- /source/squares2-0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/squares2-0.txt -------------------------------------------------------------------------------- /source/squares2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/squares2.txt -------------------------------------------------------------------------------- /source/squares3-0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/squares3-0.txt -------------------------------------------------------------------------------- /source/squares3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/squares3.txt -------------------------------------------------------------------------------- /source/squares4-0.txt: -------------------------------------------------------------------------------- 1 | (square, one) 2 | -------------------------------------------------------------------------------- /source/squares4.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/squares4.txt -------------------------------------------------------------------------------- /source/string.txt: -------------------------------------------------------------------------------- 1 | ("hello world!", test) 2 | 3 | -------------------------------------------------------------------------------- /source/sub_type-0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/sub_type-0.txt -------------------------------------------------------------------------------- /source/sub_type.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/sub_type.txt -------------------------------------------------------------------------------- /source/transitivity-0.txt: -------------------------------------------------------------------------------- 1 | (a, c) 2 | -------------------------------------------------------------------------------- /source/transitivity.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/source/transitivity.txt -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/parsing.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/src/parsing.rs -------------------------------------------------------------------------------- /tests/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/advancedresearch/avalog/HEAD/tests/lib.rs --------------------------------------------------------------------------------