% mathematical symbols by Anthony Phan.
% file: mathbdrv.mf (driver file for mathb serie)
% last modification: May 16, 2005.

mode_setup;

math_setup;

% Activate to allow characters with undefined code.
% (for proof mode compilation)
% let iff=always_iff;

% BINARY OPERATORS

currentlocation_ := 0;
input mathbsym;

% RELATIONS

varnot_sign           := hex"7F";

% mathsymb.mf

top_dot_equal_sign := hex"10";
bot_dot_equal_sign := hex"11";
top_bot_dot_equal_sign := hex"12";
rising_dots_equal_sign := hex"13";
falling_dots_equal_sign := hex"14";
colon_equal_sign := hex"15";
equal_colon_sign := hex"16";
bump_equal := hex"17";
pump_equal := hex"18";
Bump_equal := hex"19";
circ_equal_sign := hex"1A";
equal_circ_sign := hex"1B";
triangle_equal_sign := hex"1C";
correspondance_sign := hex"1D";

% MISCELLANEOUS

Dominated_curly := hex"CE";
Dominating_curly := hex"CF";

% mathsymb.mf

%times_left_three := hex"56";
%times_right_three := hex"57";

between_sign      := hex"20";
smile_sign        := hex"21";
frown_sign        := hex"22";
var_hash_sign     := hex"23";
times_left_three  := hex"24";
times_right_three := hex"25";
pitchfork_sign    := hex"26";
bowtie_sign       := hex"27";

%between_sign    := hex"2A";

VDash_sign  := hex"28";
DashV_sign  := hex"29";
VDash_not   := hex"2A";
DashV_not   := hex"2B";
Vvdash_sign := hex"2C";
dashVv_sign := hex"2D";
Vvdash_not  := hex"2E";
dashVv_not  := hex"2F";

% MISCELLANEOUS
% maya numerals

therefore_sign  := hex"36";
because_sign    := hex"37";

accent_circ     := hex"38";
accent_dot      := hex"39";
accent_ddot     := hex"3A";
accent_dddot    := hex"3B";
accent_ddddot   := hex"3C";

angle_sign      := hex"3D";
measured_angle  := hex"3E";
spherical_angle := hex"3F";

% ASTRONOMICAL SYMBOLS

% mathastr.mf

astro_sun        := hex"40";
astro_mercury    := hex"41";
astro_venus      := hex"42";
astro_earth      := hex"43";
astro_mars       := hex"44";
astro_jupiter    := hex"45";
astro_saturn     := hex"46";
astro_uranus     := hex"47";
astro_neptune    := hex"48";
astro_pluto      := hex"49";
astro_varearth   := hex"4A";
astro_left_moon  := hex"4B";
astro_right_moon := hex"4C";
astro_full_moon  := hex"4D";
astro_new_moon   := hex"4E";
cemetery         := hex"4F";
ligtable cemetery:cemetery kern-2(u#+letter_fit#);

astro_aries       := hex"50";
astro_taurus      := hex"51";
astro_gemini      := hex"52";
%astro_cancer      := hex"53";
astro_leo         := hex"54";
%astro_virgo       := hex"55";
astro_libra       := hex"56";
astro_scorpio     := hex"57";
%astro_sagittarius := hex"58";
%astro_capricornus := hex"59";
%astro_aquarius    := hex"59";
%astro_pisces      := hex"59";

% LETTER LIKE SYMBOLS

% mathltlk.mf

wedge_eq := hex"58";
vee_eq := hex"59";
wedge_eqq := hex"5A";
vee_eqq := hex"5B";
double_cap_sign := hex"5C";
double_cup_sign := hex"5D";
double_sqcap_sign := hex"5E";
double_sqcup_sign := hex"5F";

% DELIMITERS

group_left                := hex"70";
group_right               := hex"71";
ceiling_left              := hex"72";
ceiling_right             := hex"73";
floor_left                := hex"74";
floor_right               := hex"75";
bracket_upper_lower_left  := hex"76";
bracket_upper_lower_right := hex"77";
bracket_upper_left        := hex"78";
bracket_upper_right       := hex"79";
bracket_lower_left        := hex"7A";
bracket_lower_right       := hex"7B";
backslash_thick           := hex"7C";
slash_thick               := hex"7D";
vert_thick                := hex"7E";

% TRIANGLES AS BINARY OPERATORS

triangle_small_up := hex"98";
triangle_small_down := hex"99";
triangle_small_left := hex"9A";
triangle_small_right := hex"9B";
triangle_small_full_up := hex"9C";
triangle_small_full_down := hex"9D";
triangle_small_full_left := hex"9E";
triangle_small_full_right := hex"9F";

% ARROWS and HARPOONS

arrows_left_left     := hex"D0";
arrows_right_right   := hex"D1";
arrows_up_up         := hex"D2";
arrows_down_down     := hex"D3";
arrows_left_right    := hex"D4";
arrows_right_left    := hex"D5";
arrows_up_down       := hex"D6";
arrows_down_up       := hex"D7";

harpoons_left_left   := hex"D8";
harpoons_right_right := hex"D9";
harpoons_up_up       := hex"DA";
harpoons_down_down   := hex"DB";
harpoon_left_bar     := hex"DC";
harpoon_right_bar    := hex"DD";
harpoon_bar_left     := hex"DE";
harpoon_bar_right    := hex"DF";

harpoon_left_right   := hex"E0";
harpoon_right_left   := hex"E1";

hook_left      := hex"E2";
hook_right     := hex"E3";
diag_up        := hex"E4";
diag_down      := hex"E5";

arrow_shift_up_left        := hex"E8";
arrow_shift_up_right       := hex"E9";
arrow_shift_down_left      := hex"EA";
arrow_shift_down_right     := hex"EB";
arrow_loop_up_left         := hex"EC";
arrow_loop_up_right        := hex"ED";
arrow_loop_down_left       := hex"EE";
arrow_loop_down_right      := hex"EF";

arrow_curve_top_left       := hex"F0";
arrow_curve_top_right      := hex"F1";
arrow_curve_top_left_right := hex"F2";
arrow_curve_bot_left       := hex"F3";
arrow_curve_bot_right      := hex"F4";
arrow_curve_bot_left_right := hex"F5";
arrow_circle_left          := hex"F6";
arrow_circle_right         := hex"F7";
arrow_squig_left           := hex"F8";
arrow_squig_right          := hex"F9";
arrow_squig_left_right     := hex"FA";
% ?????????????            := hex"FB";
arrow_left_to_right        := hex"FC";
arrow_right_to_left        := hex"FD";
arrow_up_to_down           := hex"FE";
arrow_down_to_up           := hex"FF";

% let the show begin :

input mathastr;
input maydigit;
input mathltlk;
input mathfine;
input mathsymb;
input mathsmsy;
input mathbdel;
input matharrw;

main_name_string := "sqsubset";
t := hex"80";
forsuffixes $=,_not,_eq,_not_eq,_eq_not,
  _eq_varnot,_eqq,_not_eqq,_eqq_not,_eqq_varnot,
  _double,_double_not:
  main_name_with($) := t; t := t+2; endfor;
input mathsubs;

main_name_string := "sqsupset";
t := hex"81";
forsuffixes $=,_not,_eq,_not_eq,_eq_not,
  _eq_varnot,_eqq,_not_eqq,_eqq_not,_eqq_varnot,
  _double,_double_not:
  main_name_with($) := t; t := t+2; endfor;
input mathsubs;

main_name_string := "predecessor";
t := hex"A0";
forsuffixes $=,_not,_slant,_not_slant,
  _eq,_not_eq,_eq_not,%_eq_varnot,
  _eqq,_not_eqq,_eqq_not,_eqq_varnot,
  _upperslant,_not_upperslant,
  _opposite,_eq_opposite,_eqq_opposite,
  _sim,_not_sim,_sim_not,_approx,_not_approx,_approx_not,_dot:
  main_name_with($) := t; t := t+2; endfor;
input mathineq;

main_name_string := "successor";
t := hex"A1";
forsuffixes $=,_not,_slant,_not_slant,
  _eq,_not_eq,_eq_not,%_eq_varnot,
  _eqq,_not_eqq,_eqq_not,_eqq_varnot,
  _upperslant,_not_upperslant,
  _opposite,_eq_opposite,_eqq_opposite,
  _sim,_not_sim,_sim_not,_approx,_not_approx,_approx_not,_dot:
  main_name_with($) := t; t := t+2; endfor;
input mathineq;

main_name_string := "mbox";% ``m'' stands for medium.
t := hex"60";
forsuffixes $=_plus,_minus,_times,_division,
   _dot,_circle,_asterisk,_co_asterisk,
   _left,_right,_top,_bot,
   _sign,_slash,_backslash,_triangle_up:
  main_name_with($) := t; t := t+1; endfor;
input mathmbcb;

% see also:
% _peace_and_love,_ying_yang,
% _truc,_curt,_full_circle,_five_star,_six_star,
% _triangle_down,_triangle_left,_triangle_right,
% _top_dot_minus,_bot_dot_minus,_horiz,_vert,_cross,_across,
% _wedge,_vee,
% _black_left,_black_right,_black_top,_black_bot,
% _black_northwest,_black_northeast,_black_southwest,_black_southeast:


% parameters for TFM files.

font_slant=0;
font_x_height=x_height#;
%font_normal_stretch=3u#;
%font_normal_shrink=2u#;
font_quad=18u#+4letter_fit#;
font_extra_space=2u#;
font_normal_space=6u#+2letter_fit#;

end.