File size: 2,918 Bytes
d1ddd84
 
 
 
 
7893bcf
d1ddd84
7893bcf
d1ddd84
7893bcf
d1ddd84
 
e2a5b83
d1ddd84
2ecf237
5a11a44
3e41fc2
7abca20
d1ddd84
7893bcf
d1ddd84
 
 
 
 
7893bcf
d1ddd84
 
38aba7d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c0b8d49
d1ddd84
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <satisfier>
#include <string>

bool is_topological_space(const std::string& M)
{
    bool result = true;

    // use M string to compute result

    return result;
}

int main (/* implementation-defined */)
{
    // supposed a_topological_space_M, is_topological_space function
    Suppose_literal (a_topological_space_M, is_topological_space ("M_string"));

    // like above, you may introduce a function for each literal below
    Suppose_literal (M_is_Hausdorff, true);
    Suppose_literal (points_can_be_seperated_by_open_sets, true);
    Suppose_literal (M_is_second_countable, true);
    Suppose_literal (M_has_a_countable_topological_base, true);
    Suppose_literal (p_is_element_of_M, true);
    Suppose_literal (U_is_proper_subset_of_M, true);
    Suppose_literal (V_is_subset_of_real_coordinate_space_of_dimension_n, true);
    Suppose_literal (for_all_p_there_is_an_open_neighbourhood_U, true);
    Suppose_literal (U_is_homeomorphic_to_an_open_subset_V, true);

    Satisfy::Formula manifold_of_dimension_n = M_is_Hausdorff. And (points_can_be_seperated_by_open_sets). And (M_is_second_countable). And (M_has_a_countable_topological_base). And (p_is_element_of_M). And (U_is_proper_subset_of_M). And (V_is_subset_of_real_coordinate_space_of_dimension_n). And (for_all_p_there_is_an_open_neighbourhood_U). And (U_is_homeomorphic_to_an_open_subset_V). Implying (a_topological_space_M);

    bool M_is_a_manifold_of_dimension_n = manifold_of_dimension_n. Value (/* truth value */);
    Suppose_literal (let_M_be_a_manifold_of_dimension_n, M_is_a_manifold_of_dimension_n);

    // like the supposed literal a_topological_space_M, you may introduce a function for each literal below
    Suppose_literal (U_is_element_of_M, true);
    Suppose_literal (a_pair_U_psi_where_U_is_open, true);
    Suppose_literal (psi_maps_U_to_V_a_homeomorphism_to_some_open_V, true);

    auto chart = let_M_be_a_manifold_of_dimension_n. And (U_is_element_of_M). And (a_pair_U_psi_where_U_is_open). And (psi_maps_U_to_V_a_homeomorphism_to_some_open_V);

    Suppose_literal (the_pair_U_phi_is_a_chart_M, chart. Value(/* truth value */));

    // like the supposed literal a_topological_space_M, you may introduce a function for each literal below
    Suppose_literal (p_is_element_of_the_pair_U_phi, true);
    Suppose_literal (p_is_element_of_U, true);
    Suppose_literal (for_all_p_for_some_chart, true);

    Satisfy::Formula remark_2_1 = the_pair_U_phi_is_a_chart_M. And (p_is_element_of_U). Implying (p_is_element_of_the_pair_U_phi);

    auto third_condition_from_definition_2_1 = for_all_p_there_is_an_open_neighbourhood_U. And (U_is_element_of_M). And (U_is_homeomorphic_to_an_open_subset_V). And (V_is_subset_of_real_coordinate_space_of_dimension_n);

    Satisfy::Formula rewrite_third_condition_from_definition_2_1 = for_all_p_for_some_chart. Implying (third_condition_from_definition_2_1);

    return 0;
}